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;