Mercurial > lcfOS
diff test/testhexfile.py @ 284:05184b95fa16
Moved tests to seperate folder
author | Windel Bouwman |
---|---|
date | Fri, 15 Nov 2013 13:43:22 +0100 |
parents | python/testhexfile.py@046017431c6a |
children | 534b94b40aa8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/testhexfile.py Fri Nov 15 13:43:22 2013 +0100 @@ -0,0 +1,102 @@ +import unittest +import io +from hexfile import HexFile, HexFileException + + +class testHexFile(unittest.TestCase): + def saveload(self, hf): + f = io.StringIO() + hf.save(f) + hf2 = HexFile() + hf2.load(io.StringIO(f.getvalue())) + self.assertEqual(hf, hf2) + + def testSave1(self): + hf = HexFile() + hf.addRegion(0x8000, bytes.fromhex('aabbcc')) + self.saveload(hf) + + def testSave2(self): + hf = HexFile() + hf.addRegion(0x8000, bytes.fromhex('aabbcc')) + hf.addRegion(0x118000, bytes.fromhex('aabbcc')) + self.saveload(hf) + + def testSave3(self): + hf = HexFile() + hf.addRegion(0x8000, bytes.fromhex('aabbcc')) + hf.addRegion(0xFFFE, bytes.fromhex('aabbcc')) + self.saveload(hf) + + def testSave4(self): + hf = HexFile() + hf.addRegion(0xF000, bytes.fromhex('ab')*0x10000) + self.saveload(hf) + + def testSave5(self): + hf = HexFile() + hf.addRegion(0xF003, bytes.fromhex('ab')*0x10000) + self.saveload(hf) + + def testMerge(self): + hf = HexFile() + hf.addRegion(0x10, bytes.fromhex('abcdab')) + hf.addRegion(0x13, bytes.fromhex('abcdab')) + self.assertEqual(1, len(hf.regions)) + + def testOverlapped(self): + hf = HexFile() + hf.addRegion(0x10, bytes.fromhex('abcdab')) + with self.assertRaisesRegex(HexFileException, 'verlap'): + hf.addRegion(0x12, bytes.fromhex('abcdab')) + + def testEqual(self): + hf1 = HexFile() + hf2 = HexFile() + hf1.addRegion(10, bytes.fromhex('aabbcc')) + hf2.addRegion(10, bytes.fromhex('aabbcc')) + self.assertEqual(hf1, hf2) + + def testNotEqual(self): + hf1 = HexFile() + hf2 = HexFile() + hf1.addRegion(10, bytes.fromhex('aabbcc')) + hf2.addRegion(10, bytes.fromhex('aabbdc')) + self.assertNotEqual(hf1, hf2) + + def testNotEqual2(self): + hf1 = HexFile() + hf2 = HexFile() + hf1.addRegion(10, bytes.fromhex('aabbcc')) + hf2.addRegion(10, bytes.fromhex('aabbcc')) + hf2.addRegion(22, bytes.fromhex('aabbcc')) + self.assertNotEqual(hf1, hf2) + + def testLoad(self): + hf = HexFile() + dummyhex = """ + :01400000aa15 + """ + f = io.StringIO(dummyhex) + hf.load(f) + self.assertEqual(1, len(hf.regions)) + self.assertEqual(0x4000, hf.regions[0].address) + self.assertSequenceEqual(bytes.fromhex('aa'), hf.regions[0].data) + + def testIncorrectCrc(self): + hf = HexFile() + txt = ":01400000aabb" + f = io.StringIO(txt) + with self.assertRaisesRegex(HexFileException, 'crc'): + hf.load(f) + + def testIncorrectLength(self): + hf = HexFile() + txt = ":0140002200aabb" + f = io.StringIO(txt) + with self.assertRaisesRegex(HexFileException, 'count'): + hf.load(f) + +if __name__ == '__main__': + unittest.main() +