Mercurial > lcfOS
view python/testhexfile.py @ 244:58155c7c4a8e
Add hexutil
author | Windel Bouwman |
---|---|
date | Wed, 24 Jul 2013 19:47:13 +0200 |
parents | d3dccf12ca88 |
children | 66912720d712 |
line wrap: on
line source
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 testSave(self): hf = HexFile() hf.addRegion(0x8000, bytes.fromhex('aabbcc')) self.saveload(hf) 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()