Mercurial > lcfOS
comparison python/testc3.py @ 272:e64bae57cda8
refactor ir
author | Windel Bouwman |
---|---|
date | Sat, 31 Aug 2013 17:58:54 +0200 |
parents | 5ec7580976d9 |
children | 02385f62f250 |
comparison
equal
deleted
inserted
replaced
271:cf7d5fb7d9c8 | 272:e64bae57cda8 |
---|---|
103 if rows != actualErrors: | 103 if rows != actualErrors: |
104 self.diag.printErrors(snippet) | 104 self.diag.printErrors(snippet) |
105 self.assertSequenceEqual(rows, actualErrors) | 105 self.assertSequenceEqual(rows, actualErrors) |
106 self.assertFalse(ircode) | 106 self.assertFalse(ircode) |
107 | 107 |
108 def expectOK(self, snippet): | 108 def expectOK(self, snippet, pack_dir=None): |
109 ircode = self.builder.build(snippet) | 109 ircode = self.builder.build(snippet, pack_dir=pack_dir) |
110 if not ircode: | 110 if not ircode: |
111 self.diag.printErrors(snippet) | 111 self.diag.printErrors(snippet) |
112 self.assertTrue(ircode) | 112 self.assertTrue(ircode) |
113 return ircode | |
114 | |
115 def expectIR(self, snippet, ir_out): | |
116 ircode = self.builder.build(snippet) | |
117 if not ircode: | |
118 self.diag.printErrors(snippet) | |
119 self.assertTrue(ircode) | |
120 actual_ins = [str(i) for i in ircode.Instructions] | |
121 expected_ins = [i.strip() for i in ir_out.split('\n')] | |
122 self.assertSequenceEqual(expected_ins, actual_ins) | |
123 return ircode | 113 return ircode |
124 | 114 |
125 def testPackage(self): | 115 def testPackage(self): |
126 p1 = """package p1; | 116 p1 = """package p1; |
127 type int A; | 117 type int A; |
406 """ Test all examples in the c3/examples directory """ | 396 """ Test all examples in the c3/examples directory """ |
407 example_filenames = glob.glob('./c3/examples/*.c3') | 397 example_filenames = glob.glob('./c3/examples/*.c3') |
408 for filename in example_filenames: | 398 for filename in example_filenames: |
409 with open(filename, 'r') as f: | 399 with open(filename, 'r') as f: |
410 src = f.read() | 400 src = f.read() |
411 self.expectOK(src) | 401 self.expectOK(src, pack_dir='./c3/examples') |
412 | 402 |
413 def test2(self): | 403 def test2(self): |
414 # testsrc2 is valid code: | 404 # testsrc2 is valid code: |
415 snippet = """ | 405 snippet = """ |
416 package test2; | 406 package test2; |