diff python/testir.py @ 204:de3a68f677a5

Added long comment to c3 parser
author Windel Bouwman
date Fri, 21 Jun 2013 15:01:08 +0200
parents 25a0753da4cf
children 81752b0f85a5
line wrap: on
line diff
--- a/python/testir.py	Sat Jun 15 19:13:05 2013 +0200
+++ b/python/testir.py	Fri Jun 21 15:01:08 2013 +0200
@@ -1,5 +1,30 @@
+import unittest, os
 import c3, ppci, ir, x86, transform
-import os
+
+class ConstantFolderTestCase(unittest.TestCase):
+    def setUp(self):
+        self.b = ir.Builder()
+        self.cf = transform.ConstantFolder()
+
+    def testBuilder(self):
+        m = ir.Module('test')
+        self.b.setModule(m)
+        f = self.b.newFunction('test')
+        self.b.setFunction(f)
+        bb = self.b.newBB()
+        self.b.setBB(bb)
+        v1 = self.b.newTmp('t')
+        v2 = self.b.newTmp('t')
+        v3 = self.b.newTmp('t')
+        self.b.addIns(ir.ImmLoad(v1, 5))
+        self.b.addIns(ir.ImmLoad(v2, 7))
+        self.b.addIns(ir.BinaryOperator(v3, '+', v1, v2))
+        self.assertEqual(3, len(m.Instructions))
+        self.cf.run(m)
+        self.assertEqual(3, len(m.Instructions))
+        self.assertIsInstance(m.Instructions[-1], ir.ImmLoad)
+        self.assertEqual(12, m.Instructions[-1].value)
+
 
 testsrc = """
 package test2;
@@ -50,6 +75,8 @@
 """
 
 if __name__ == '__main__':
+   unittest.main()
+   sys.exit()
    diag = ppci.DiagnosticsManager()
    builder = c3.Builder(diag)
    cgenx86 = x86.X86CodeGenSimple(diag)