コード例 #1
0
ファイル: test_shf.py プロジェクト: guillermoarb/objutils
def test_dump_shf1():
    SREC1 = b"""S113B000576F77212044696420796F7520726561D8
S113B0106C6C7920676F207468726F756768206143
S113B0206C20746861742074726F75626C6520742E
S10FB0306F207265616420746869733FCE
S9030000FC"""
    sr = loads("srec", SREC1)
    img = Image([sr[0]])
    shf = dumps("shf", img)
    assert shf == """<?xml version="1.0" encoding="UTF-8"?>
コード例 #2
0
ファイル: test_shf.py プロジェクト: guillermoarb/objutils
def test_load_shf1():
    DUMP = """<?xml version="1.0" encoding="UTF-8"?>
    <dump name="Simple SHF example" blocks="01">
        <block name="Important message in hex format" address="0400" word_size="01" length="1f" checksum="5601b6acad7da5c7b92036786250b053f05852c3">
            41 6c 6c 20 79 6f 75 72 20 62 61 73 65 20 61 72
            65 20 62 65 6c 6f 6e 67 20 74 6f 20 75 73 0a
        </block>
    </dump>
    """
    img = loads("shf", DUMP)
    assert len(img) == 31
    sec = img[0]
    assert sec.start_address == 0X00000400
    assert sec.length == 31
    assert sec.data == b'All your base are belong to us\n'
コード例 #3
0
ファイル: test_shf.py プロジェクト: guillermoarb/objutils
def test_load_shf3():
    DUMP = """<?xml version="1.0" encoding="UTF-8"?>
    <dump name="Example of an SHF dump with wide data words" blocks="00001">
        <block name="SMIL memory dump" address="000" word_size="5" length="1A" checksum="ff2033489aff0e4e4f0cd7901afc985f7a213c97">
            00100 00200 00000 00090 00000 00036 00300 00400
            00852 00250 00230 00858 00500 00600 014DC 00058
            002A8 000B8 00700 00800 000B0 00192 00100 00000
            00900 00A00 00000 0000A 40000 00000 00B00 00C00
            00000 00000 00000 00001 00D00 00E00 00000 00100
            0CCCC CCCCD 00F00 01000 00000 00010 80000 00000
            00100 00790 00000 00234
    </block>
    </dump>
    """
    img = loads("shf", DUMP)
    assert len(img) == 130
    sec = img[0]
    assert sec.start_address == 0X00000000
    assert sec.length == 130
    assert sec.data == b'\x00\x10\x00\x02\x00\x00\x00\x00\x00\x90\x00\x00\x00\x006\x000\x00\x04\x00\x00\x85 \x02P\x00#\x00\x08X\x00P\x00\x06\x00\x01M\xc0\x00X\x00*\x80\x00\xb8\x00p\x00\x08\x00\x00\x0b\x00\x01\x92\x00\x10\x00\x00\x00\x00\x90\x00\n\x00\x00\x00\x00\x00\n@\x00\x00\x00\x00\x00\xb0\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xd0\x00\x0e\x00\x00\x00\x00\x01\x00\x0c\xcc\xcc\xcc\xcd\x00\xf0\x00\x10\x00\x00\x00\x00\x00\x10\x80\x00\x00\x00\x00\x00\x10\x00\x07\x90\x00\x00\x00\x024'
コード例 #4
0
ファイル: test_shf.py プロジェクト: guillermoarb/objutils
def test_load_shf2():
    DUMP = """<?xml version="1.0" encoding="UTF-8"?>
    <dump name="6502 Fibonacci" blocks="02">
        <block name="Code" address="1000" word_size="01" length="2a" checksum="5cab5bf8ee299af1ad17e8093d941914eb5930c7">
            a9 01 85 20 85 21 20 1e 10 20 1e 10 18 a5 21 aa
            65 20 86 20 85 21 20 1e 10 c9 c8 90 ef 60 ae 00
            11 a5 21 9d 00 11 ee 00 11 60
        </block>
        <block name="Mem" address="1100" word_size="01" length="e" checksum="c8c2001c42b0226a5d9f7c2f24bd47393166487a">
            01 00 00 00 00 00 00 00 00 00 00 00 00 00
        </block>
    </dump>
    """
    img = loads("shf", DUMP)
    assert len(img) == 56
    sec0, sec1 = img
    assert sec0.start_address == 0X00001000
    assert sec0.length == 42
    assert sec0.data == b'\xa9\x01\x85 \x85! \x1e\x10 \x1e\x10\x18\xa5!\xaae \x86 \x85! \x1e\x10\xc9\xc8\x90\xef`\xae\x00\x11\xa5!\x9d\x00\x11\xee\x00\x11`'
    assert sec1.start_address == 0X00001100
    assert sec1.length == 14
    assert sec1.data == b'\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
コード例 #5
0
 def testDumpsWorks(self):
     data = loads("srec", S19)
     self.assertEqual(dumps("mostec", data), MOSTEC)
コード例 #6
0
 def testLoadsWorks(self):
     data = loads("mostec", MOSTEC)
     #data.hexdump()
     #print(dumps("srec", data))
     self.assertEqual(dumps("srec", data, s5record=True), S19)
コード例 #7
0
 def testDumpsWorks(self):
     data = loads("srec", S19)
     self.assertEqual(dumps("tek", data), TEK)
コード例 #8
0
ファイル: testIHex.py プロジェクト: sgnes/objutils
 def testRoundtripFromString(self):
     dataIn = loads("ihex", TEST2)
     dataOut = dumps("ihex", dataIn)
     self.assertEqual(dataOut, TEST2)
コード例 #9
0
ファイル: testIHex.py プロジェクト: sgnes/objutils
 def testAddressGapFromString(self):
     data = loads("ihex", TEST2)
     self.assertEqual(data.sections[0].data, b'Example with an address gap')
     self.assertEqual(data.sections[1].data,
                      b'Here is a gap in the memory allocation')
コード例 #10
0
ファイル: test_fpc.py プロジェクト: guillermoarb/objutils
#for key, value in sorted(registry.registry().items()):
#    print("{0:10} {1}".format(key, value.description))


SREC = b"""S123B000576F77212044696420796F75207265616C6C7920676F207468726F7567682061DF
S120B0206C6C20746861742074726F75626C6520746F207265616420746869733F73
S5030002FA"""

FPC = b"""$kL&@h%%,:,B.\?00EPuX0K3rO0JI))
$;UPR'%%,:<Hn&FCG:at<GVF(;G9wIw
$7FD1p%%,:LHmy:>GTV%/KJ7@GE[kYz
$B[6\;%%,:\KIn?GFWY/qKI1G5:;-_e
$%%%%%"""


fromSrec =  loads('srec', SREC)
dataFromSRec = dumps('fpc', fromSrec)   # Fixme: Does _NOT_ return 'bytes'!

fromFPC =  loads('fpc', FPC)
dataFromFPC = dumps('srec', fromFPC, row_length = 32, s5record = True)


class TestRoundTrip(unittest.TestCase):

    def testFromSrec(self):
        self.assertEqual(dataFromSRec, FPC)
        #pass

    def testFromFPC(self):
        self.assertEqual(dataFromFPC, SREC)
コード例 #11
0
def test_meta_data2():
    img = loads("srec", SREC4)
    assert img.meta == {
        1:
        [MetaRecord(format_type=1, address=0, chunk=bytearray(b'sample.s19'))]
    }
コード例 #12
0
def test_meta_data1():
    img = loads("srec", SREC1)
    assert img.meta == {8: [MetaRecord(format_type=8, address=0, chunk=None)]}
コード例 #13
0
 def testDumpsWorks(self):
     data = loads("srec", S19)
     self.assertEqual(dumps("emon52", data), EMON52)
コード例 #14
0
 def testLoadsWorks(self):
     data = loads("emon52", EMON52)
     self.assertEqual(dumps("srec", data, s5record=True), S19)
コード例 #15
0
 def _runTest(self, format):
     data = loads("ash", format)
     self.assertTrue(dumps("srec", data, s5record=True) == SREC)
コード例 #16
0
 def testWriteHexSpace(self):
     data = loads("srec", SREC)
コード例 #17
0
ファイル: disassembler.py プロジェクト: jamielitest/knx
S113014003080409020A0BCED4C707D4C707D4C7CF
S113015007D4C707D4C707D4C707D4C707D4C7076A
S1130160D5D700D5D700D6D708B602A43C2642B6C8
S1130170D8CD0C9D02503AB6D6A4E0A100263B0788
S1130180D338B6D6AAE097A407B7D9B6D400D722F5
S113019003D70B4F05D7014AAD3610D720E40AD751
S11301A0061AD7E6FFB7D404D70427054A4A4C26D3
S11301B01F815ACD0C383FD93FD23FD3A6E006D297
S11301C0050FD2EDAB1001D502AB08BBD997E6FF02
S11301D0B7D4B6D93CD9A10824DCB7D8CC0DB9FF23
S11301E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B
S11301F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000A
S5030010EC
"""

data = loads("srec", S19)

from cStringIO import StringIO


class ROMDisassembler(object):
    def __init__(self, image):
        self.memory = ReadWriteMemory(StringIO(image))
        self.getByte = self.memory.createGetter(1, self.memory.BIG_ENDIAN)
        self.getWord = self.memory.createGetter(2, self.memory.BIG_ENDIAN)


rd = ROMDisassembler(data.segments[0].data)
print rd

if __name__ == '__main__':
コード例 #18
0
4D F4 18 52 F5 CB 47 2D 66 31 A0 A3 74 FD 56 C3
1C FD 86 16 30 8D 24 07 F3 8C 7C 5A 94 48 FD E2
q"""

SREC = b"""S123DEAD99F2B9CB79D3EEF88FC6A940ABCD71A6F0525E0C139D0A2C261F622553F03DED78
S123DECDE2F6B85BCAA653596CFD9917CA0BBEBB5D1CC770B9D29CDFF1FF0545EF4232D19F
S123DEED39EA2D0391805CFD7DF5154800D3035EEFCACEA89C6B888E6A8DD359CF052A08DC
S123DF0DEF570B80D8677E555D939D5D66A0BB556B8AFD07F585955F1268B8E26DE2EA5DFC
S123DF2D3AF6DD125D5B67BAEE051854A5D3A9105DA718522CADB13F166921834C0BE08631
S123DF4D01BE985F19FF190804315CAA0506BA62ADD2B5D980661896D039191C45FAA24659
S123DF6DB83AA5D139BFD93EF036E8F53CA258E9750DC2F573DB8B4314A45F599E01A0569D
S123DF8D3B4528750401B3F5379BEA733D425CB24F1FA7C3FA32060ED76668756708CCA3DA
S123DFAD4DF41852F5CB472D6631A0A374FD56C31CFD8616308D2407F38C7C5A9448FDE260
S5030009F3"""

fromSrec = loads('srec', SREC)
dataFromSRec = dumps('titxt', fromSrec)
fromTiTxt = loads('titxt', TITEXT)
dataFromTiTxt = dumps('srec', fromTiTxt, row_length=32, s5record=True)


class TestRoundTrip(unittest.TestCase):
    def testFromSrec(self):
        self.assertEqual(dataFromSRec, TITEXT)

    def testFromTiTxt(self):
        self.assertEqual(dataFromTiTxt, SREC)


if __name__ == '__main__':
    unittest.main()
コード例 #19
0
ファイル: testIHex.py プロジェクト: sgnes/objutils
 def test32Bit(self):
     dataIn = loads("srec", S19_32)
     dataOut = dumps("ihex", dataIn)
     self.assertEqual(dataOut, IHEX_32)