diff python/testc3.py @ 225:1c7364bd74c7

Fixed pointer deref
author Windel Bouwman
date Thu, 11 Jul 2013 07:42:30 +0200
parents 848c4b15fd0b
children 82dfe6a32717
line wrap: on
line diff
--- a/python/testc3.py	Tue Jul 09 17:59:15 2013 +0200
+++ b/python/testc3.py	Thu Jul 11 07:42:30 2013 +0200
@@ -205,14 +205,43 @@
       }
         """
         self.expectOK(snippet)
+
+    def testTypeDef(self):
+        snippet = """
+         package testtypedef;
+         type int my_int;
+         function void t()
+         {
+            var my_int a;
+            var int b;
+            a = 2;
+            b = a + 2;
+         }
+        """
+        self.expectOK(snippet)
+
    
+    def testPointerType1(self):
+        snippet = """
+         package testpointer1;
+         var int* pa;
+         function void t()
+         {
+            var int a;
+            pa = &a;
+            *pa = 22;
+         }
+        """
+        self.expectOK(snippet)
+
     def testPointerType(self):
         snippet = """
          package testpointer;
-         var int* pa;
+         var int* pa, pb;
          function void t(int a, double b)
          {
             pa = &a;
+            pb = pa;
             *pa = 22;
          }
         """
@@ -234,7 +263,6 @@
         """
         self.expectErrors(snippet, [6, 9, 9, 10, 11])
 
-    @unittest.skip 
     def testComplexType(self):
         snippet = """
          package testpointer;
@@ -251,16 +279,21 @@
          } my_struct;
 
          type my_struct* my_sptr;
+         var int* pa;
 
          function void t(int a, double b, my_sptr x)
          {
             var my_struct *msp;
 
+            var my_struct u, v;
+            var point *pt;
+
+            pt = &msp->P1;
             msp = x;
-            *pa = 22;
+            *pa = 22 + u.mem1 * v.memb2 - u.P1.x;
             x->memb2 = *pa + a * b;
 
-            mxp->P1.x = a * x->P1.y;
+            msp->P1.x = a * x->P1.y;
          }
         """
         self.expectOK(snippet)