Mercurial > lcfOS
annotate python/testhexfile.py @ 272:e64bae57cda8
refactor ir
author | Windel Bouwman |
---|---|
date | Sat, 31 Aug 2013 17:58:54 +0200 |
parents | 6ed3d3a82a63 |
children | 046017431c6a |
rev | line source |
---|---|
233 | 1 import unittest |
2 import io | |
244 | 3 from hexfile import HexFile, HexFileException |
233 | 4 |
5 | |
6 class testHexFile(unittest.TestCase): | |
244 | 7 def saveload(self, hf): |
8 f = io.StringIO() | |
9 hf.save(f) | |
10 hf2 = HexFile() | |
11 hf2.load(io.StringIO(f.getvalue())) | |
12 self.assertEqual(hf, hf2) | |
245 | 13 |
14 def testSave1(self): | |
244 | 15 hf = HexFile() |
16 hf.addRegion(0x8000, bytes.fromhex('aabbcc')) | |
17 self.saveload(hf) | |
18 | |
245 | 19 def testSave2(self): |
20 hf = HexFile() | |
21 hf.addRegion(0x8000, bytes.fromhex('aabbcc')) | |
22 hf.addRegion(0x118000, bytes.fromhex('aabbcc')) | |
23 self.saveload(hf) | |
24 | |
25 def testSave3(self): | |
26 hf = HexFile() | |
27 hf.addRegion(0x8000, bytes.fromhex('aabbcc')) | |
28 hf.addRegion(0xFFFE, bytes.fromhex('aabbcc')) | |
29 self.saveload(hf) | |
30 | |
272 | 31 @unittest.skip |
245 | 32 def testSave4(self): |
33 hf = HexFile() | |
251
6ed3d3a82a63
Added another c3 example. First import attempt
Windel Bouwman
parents:
245
diff
changeset
|
34 hf.addRegion(0xF000, bytes.fromhex('ab')*0x10000) |
245 | 35 self.saveload(hf) |
36 | |
272 | 37 @unittest.skip |
245 | 38 def testSave5(self): |
39 hf = HexFile() | |
251
6ed3d3a82a63
Added another c3 example. First import attempt
Windel Bouwman
parents:
245
diff
changeset
|
40 hf.addRegion(0xF003, bytes.fromhex('ab')*0x10000) |
245 | 41 self.saveload(hf) |
42 | |
43 def testMerge(self): | |
44 hf = HexFile() | |
45 hf.addRegion(0x10, bytes.fromhex('abcdab')) | |
46 hf.addRegion(0x13, bytes.fromhex('abcdab')) | |
47 self.assertEqual(1, len(hf.regions)) | |
48 | |
49 def testOverlapped(self): | |
50 hf = HexFile() | |
51 hf.addRegion(0x10, bytes.fromhex('abcdab')) | |
52 with self.assertRaisesRegex(HexFileException, 'verlap'): | |
53 hf.addRegion(0x12, bytes.fromhex('abcdab')) | |
54 | |
244 | 55 def testEqual(self): |
56 hf1 = HexFile() | |
57 hf2 = HexFile() | |
58 hf1.addRegion(10, bytes.fromhex('aabbcc')) | |
59 hf2.addRegion(10, bytes.fromhex('aabbcc')) | |
60 self.assertEqual(hf1, hf2) | |
61 | |
62 def testNotEqual(self): | |
63 hf1 = HexFile() | |
64 hf2 = HexFile() | |
65 hf1.addRegion(10, bytes.fromhex('aabbcc')) | |
66 hf2.addRegion(10, bytes.fromhex('aabbdc')) | |
67 self.assertNotEqual(hf1, hf2) | |
245 | 68 |
244 | 69 def testNotEqual2(self): |
70 hf1 = HexFile() | |
71 hf2 = HexFile() | |
72 hf1.addRegion(10, bytes.fromhex('aabbcc')) | |
73 hf2.addRegion(10, bytes.fromhex('aabbcc')) | |
74 hf2.addRegion(22, bytes.fromhex('aabbcc')) | |
75 self.assertNotEqual(hf1, hf2) | |
233 | 76 |
77 def testLoad(self): | |
244 | 78 hf = HexFile() |
233 | 79 dummyhex = """ |
80 :01400000aa15 | |
81 """ | |
82 f = io.StringIO(dummyhex) | |
83 hf.load(f) | |
244 | 84 self.assertEqual(1, len(hf.regions)) |
85 self.assertEqual(0x4000, hf.regions[0].address) | |
86 self.assertSequenceEqual(bytes.fromhex('aa'), hf.regions[0].data) | |
233 | 87 |
88 def testIncorrectCrc(self): | |
244 | 89 hf = HexFile() |
233 | 90 txt = ":01400000aabb" |
91 f = io.StringIO(txt) | |
244 | 92 with self.assertRaisesRegex(HexFileException, 'crc'): |
233 | 93 hf.load(f) |
94 | |
95 def testIncorrectLength(self): | |
244 | 96 hf = HexFile() |
233 | 97 txt = ":0140002200aabb" |
98 f = io.StringIO(txt) | |
244 | 99 with self.assertRaisesRegex(HexFileException, 'count'): |
233 | 100 hf.load(f) |
101 | |
102 if __name__ == '__main__': | |
103 unittest.main() | |
104 |