diff --git a/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java b/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java
index e72927f76421eafbf9668baca65c458a7ea27d94..2103e27bb1fee9bf9f761f1800b22fcfda42f2af 100644
--- a/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AndOrAndPrecedenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char a = 1;\n" +
+"      char b = 1;\n" +
+"      char c = 1;\n" +
+"      char d = 1;\n" +
+"      char pass = 0;\n" +
+"      if (a!=0 && b!=0 || c!=0 && d!=0){\n" +
+"         pass = 1;\n" +
+"      }\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void AndOrAndPrecedenceTest() {
         test(com.aparapi.codegen.test.AndOrAndPrecedence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AndOrAndPrecedenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AndOrAndPrecedence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java b/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java
index b6d165a724a493db88603a4806aa8592e10a4880..bee966f1304b18d930d03071f5c91e12a25053b0 100644
--- a/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AndOrPrecedence2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+"typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char a = 0;\n" +
+"      char b = 0;\n" +
+"      char d = 0;\n" +
+"      char pass = 0;\n" +
+"      if (a!=0 && (b==0 || d==0)){\n" +
+"         pass = 1;\n" +
+"      }\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedence2Test() {
         test(com.aparapi.codegen.test.AndOrPrecedence2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedence2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.AndOrPrecedence2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java b/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java
index 551dc90cd323477299eaf9a5b58a83a4c10821c6..9d36028fe0586ba1360ff526f9a790157232c970 100644
--- a/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AndOrPrecedenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char a = 1;\n" +
+"      char b = 0;\n" +
+"      char c = 0;\n" +
+"      char pass = 0;\n" +
+"      if (a!=0 || b!=0 && c!=0){\n" +
+"         pass = 1;\n" +
+"      }\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
+    
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedenceTest() {
         test(com.aparapi.codegen.test.AndOrPrecedence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AndOrPrecedence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java b/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java
index a4f42eecd0b720fbdbb396e019ed4f8e58b092c4..212f2018baf98483aaebf448b287569d260234bc 100644
--- a/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java
@@ -18,16 +18,66 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArbitraryScope2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" {\n" +
+" int count = 0;\n" +
+" count++;\n" +
+" }\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" for (int iter = 0; iter<this->maxIterations; iter++){\n" +
+" if ((x2 + y2)<=scaleSquare){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" } else {\n" +
+" count--;\n" +
+" }\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScope2Test() {
         test(com.aparapi.codegen.test.ArbitraryScope2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScope2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArbitraryScope2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java
index 230ff974708d347ac6a9685cf55b5411dfa0915f..af73ce368c5ffc62a485f67bad8fb1fecea897d4 100644
--- a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArbitraryScopeSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int value = 10;\n" +
+" {\n" +
+" int count = 10;\n" +
+" float f = 10.0f;\n" +
+" value = (int)((float)count * f);\n" +
+" }\n" +
+" int result = 0;\n" +
+" int count = 0;\n" +
+" result = value + count;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+""};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScopeSimpleTest() {
         test(com.aparapi.codegen.test.ArbitraryScopeSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScopeSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArbitraryScopeSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java b/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java
index c2c5168cec10a9b10cf58ea76519c7a21cb9bc73..3eb48358bd7ca5168ad3de2915dfc8f13921a5f2 100644
--- a/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java
+++ b/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArrayTortureIssue35Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" __global int *a;\n" +
+" __global int *b;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *a,\n" +
+" __global int *b,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->a = a;\n" +
+" this->b = b;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->a[this->b[0]++] = 1;\n" +
+" return;\n" +
+" }\n" +
+" }"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArrayTortureIssue35Test() {
         test(com.aparapi.codegen.test.ArrayTortureIssue35.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArrayTortureIssue35TestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArrayTortureIssue35.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java b/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java
index 9376dbfbcf0a05073da22af14d83583cadfd81af..650372e4df586fa6a7823970fcb1f3975e3f455d 100644
--- a/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class AssignFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void AssignFieldTest() {
         test(com.aparapi.codegen.test.AssignField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AssignFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AssignField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java b/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java
index a5337c95966240c20a67f97442d3a4498e2d2288..070d39a11a73c6dd145f43cbf271301f55f65f07 100644
--- a/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java
+++ b/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class Atomic32PragmaTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable\n" +
+" #pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable\n" +
+" #pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics : enable\n" +
+" #pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable\n" +
+" int atomicAdd(__global int *_arr, int _index, int _delta){\n" +
+" return atomic_add(&_arr[_index], _delta);\n" +
+" }\n" +
+" typedef struct This_s{\n" +
+" __global int *values;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *values,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->values = values;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" atomicAdd(this->values, 1, 1);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void Atomic32PragmaTest() {
         test(com.aparapi.codegen.test.Atomic32Pragma.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void Atomic32PragmaTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Atomic32Pragma.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java b/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java
index 22640e2923a82d48d35a00d6dde9ada6ebd66501..bf2b3cecda6f9a94e1bd0a21abe8b2283799499c 100644
--- a/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java
@@ -18,16 +18,32 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class BooleanToggleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char pass = 0;\n" +
+"      pass = (pass==0)?1:0;\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void BooleanToggleTest() {
         test(com.aparapi.codegen.test.BooleanToggle.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void BooleanToggleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.BooleanToggle.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/BreakTest.java b/src/test/java/com/aparapi/codegen/test/BreakTest.java
index 73daa3d51a7a195dadd51af93d93a06782fd86b7..900f2b5e0004b9607c96d3b2be5602a00fa27980 100644
--- a/src/test/java/com/aparapi/codegen/test/BreakTest.java
+++ b/src/test/java/com/aparapi/codegen/test/BreakTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class BreakTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void BreakTest() {
         test(com.aparapi.codegen.test.Break.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void BreakTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Break.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java b/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java
index c3998f227f2000044f14e954071f160378cddc9c..f6deaf9739174ac7e42cb78cbd5ede71e2dd3525 100644
--- a/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ByteParamsSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        " typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" void com_amd_aparapi_test_ByteParamsSimple__addEmUp2(This *this, char x, char y){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char bb = 0;\n" +
+" char cc = 7;\n" +
+" com_amd_aparapi_test_ByteParamsSimple__addEmUp2(this, bb, cc);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ByteParamsSimpleTest() {
         test(com.aparapi.codegen.test.ByteParamsSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ByteParamsSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ByteParamsSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java b/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java
index 408a2b2cc1acad58e9a85625a52f0b95f3c5c858..2f000b24dad278d3a9dd17a9dfa5a987d135642e 100644
--- a/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java
@@ -18,16 +18,30 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallGetPassIdTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int thePassId = get_pass_id(this);\n" +
+" return;\n" +
+" }\n" +
+" }"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallGetPassIdTest() {
         test(com.aparapi.codegen.test.CallGetPassId.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallGetPassIdTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallGetPassId.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java b/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java
index 2adfbbde5a68abad3be3f5f723eef9499266841a..d97ee88a885f4c7ce6f511ce9c37c5f5722e0fea 100644
--- a/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallObjectStaticTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallObjectStatic$Dummy__foo(){\n" +
+" return(42);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_CallObjectStatic$Dummy__foo();\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallObjectStaticTest() {
         test(com.aparapi.codegen.test.CallObjectStatic.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallObjectStaticTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallObjectStatic.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallObjectTest.java b/src/test/java/com/aparapi/codegen/test/CallObjectTest.java
index c26d62f375d41b16e779fbec18b5d5ce1c387c22..22cce1c63d5edbf8cf6a7190faceb94c9d2c6e0a 100644
--- a/src/test/java/com/aparapi/codegen/test/CallObjectTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallObjectTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class CallObjectTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void CallObjectTest() {
         test(com.aparapi.codegen.test.CallObject.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallObjectTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallObject.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java b/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java
index e70e71a984c5a7a65649b00c83729552d47d7224..b81c8881f961c91ca2c60033bde4cb7fe05b5d88 100644
--- a/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallRunSuperTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_CallRunSuperBase__run(This *this){\n" +
+" this->out[0]  = 2;\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_CallRunSuperBase__run(this);\n" +
+" this->out[1]  = 3;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallRunSuperTest() {
         test(com.aparapi.codegen.test.CallRunSuper.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallRunSuperTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallRunSuper.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java b/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java
index df8c09436758635d1fb0d88c86285b4f3162119d..10ad4e1e2e2c797acfed7ac877da76831d0bed94 100644
--- a/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallStaticInAnotherClassTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+"typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_AnotherClass__foo(){\n" +
+" return(42);\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallStaticInAnotherClass__doodoo(This *this){\n" +
+" return(com_amd_aparapi_test_AnotherClass__foo());\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_AnotherClass__foo() + com_amd_aparapi_test_CallStaticInAnotherClass__doodoo(this);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallStaticInAnotherClassTest() {
         test(com.aparapi.codegen.test.CallStaticInAnotherClass.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallStaticInAnotherClassTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallStaticInAnotherClass.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallSuperTest.java b/src/test/java/com/aparapi/codegen/test/CallSuperTest.java
index 2270d9b3050c435964089c3ffd77a390d9f517cb..8b29436a72cf389642c6e9537812ace64ab27684 100644
--- a/src/test/java/com/aparapi/codegen/test/CallSuperTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallSuperTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallSuperTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_CallSuperBase__foo(This *this, int n){\n" +
+" return((n * 2));\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallSuper__foo(This *this, int n){\n" +
+" return((1 + com_amd_aparapi_test_CallSuperBase__foo(this, n)));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_CallSuper__foo(this, 2);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallSuperTest() {
         test(com.aparapi.codegen.test.CallSuper.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallSuperTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallSuper.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java b/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java
index 8effb46908693887a71ca4d392dadb9745ae5b82..485f4154c7c11339d653b38063050527df388819 100644
--- a/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallTwiceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+" typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallTwice__getOne(This *this){\n" +
+" return(1);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_CallTwice__getOne(this) + com_amd_aparapi_test_CallTwice__getOne(this);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallTwiceTest() {
         test(com.aparapi.codegen.test.CallTwice.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallTwiceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallTwice.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java b/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java
index 5790c1d10a82b9d75f3332ef09703052be4950e5..816e32f27bb8f08641a5b305d66eeff8a73b204f 100644
--- a/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CharArrayFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+"typedef struct This_s{\n" +
+" __global unsigned short  *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global unsigned short  *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = 0;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CharArrayFieldTest() {
         test(com.aparapi.codegen.test.CharArrayField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CharArrayFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CharArrayField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java b/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java
index 915f112ac876d81e6e7204badddfdd83b4f7f9e8..5ff3c40d038ce585585a94793545cf9239c6a4e3 100644
--- a/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CharAsParameterTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" unsigned short com_amd_aparapi_test_CharAsParameter__doIt(This *this, unsigned short x){\n" +
+" return(x);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char b = 1;\n" +
+" com_amd_aparapi_test_CharAsParameter__doIt(this, 65);\n" +
+" com_amd_aparapi_test_CharAsParameter__doIt(this, (unsigned short )b);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CharAsParameterTest() {
         test(com.aparapi.codegen.test.CharAsParameter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CharAsParameterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CharAsParameter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CharTypeTest.java b/src/test/java/com/aparapi/codegen/test/CharTypeTest.java
index eb5e98d8daa26cad1cb6ecadabed79205d26bc89..aff15a146d2ffab09a94fbf270043d7eac8f60bb 100644
--- a/src/test/java/com/aparapi/codegen/test/CharTypeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CharTypeTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CharTypeTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" unsigned short c = 65535;\n" +
+" this->out[0]  = 65535;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CharTypeTest() {
         test(com.aparapi.codegen.test.CharType.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CharTypeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CharType.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java b/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java
index 6bd9a0ab3132fa3127a191ac61b0f1fe36575bdd..b2ba54c3598e0c44f1411d21168d8dc4318271a0 100644
--- a/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ClassHasStaticFieldAccessTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int foo;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int foo,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->foo = foo;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" for (int i = 0; i<1024; i++){\n" +
+" if ((i % 2)==0){\n" +
+" this->ints[i]  = foo;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticFieldAccessTest() {
         test(com.aparapi.codegen.test.ClassHasStaticFieldAccess.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticFieldAccessTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ClassHasStaticFieldAccess.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java
index 99f6dff20b8f4085b0c0e818e4c978edbcb6f884..b5b6b10a73c02bfd7a3f7dedf3b6d40efdacac72 100644
--- a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ClassHasStaticMethodSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" void com_amd_aparapi_test_ClassHasStaticMethodSimple__staticMethod(){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_ClassHasStaticMethodSimple__staticMethod();\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodSimpleTest() {
         test(com.aparapi.codegen.test.ClassHasStaticMethodSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ClassHasStaticMethodSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java
index ed001eaa43af6fe19278f39ab348073fb4e65b7f..a5e84f9c0df0b74ffb2583f8d72f9d0e635bce0b 100644
--- a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ClassHasStaticMethodTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_ClassHasStaticMethod__getIntAndReturnIt(int a){\n" +
+" return((1 - a));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int foo = 1;\n" +
+" for (int i = 0; i<1024; i++){\n" +
+" if ((i % 2)==0){\n" +
+" this->ints[i] = foo;\n" +
+" } else {\n" +
+" this->ints[i] = com_amd_aparapi_test_ClassHasStaticMethod__getIntAndReturnIt(foo);\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodTest() {
         test(com.aparapi.codegen.test.ClassHasStaticMethod.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ClassHasStaticMethod.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java b/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java
index 7e581aaed02be28ebd3304b9b38580037399a4dc..de3df1b128ce8ee9070d38450a6d9f551d349f9d 100644
--- a/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java
@@ -18,16 +18,109 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CompositeArbitraryScopeTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t5(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" int thisCount = 0;\n" +
+" for (; numRemaining>0 && gid>0; numRemaining++){\n" +
+" numRemaining++;\n" +
+" thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" gid = gid - thisCount;\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t4(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" while (numRemaining>0 && gid>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" numRemaining++;\n" +
+" gid--;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t3(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" while (numRemaining>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" numRemaining++;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t2(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" for (; numRemaining>0; numRemaining){\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t1(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" while (numRemaining>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t1(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t2(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t3(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t4(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t5(this);\n" +
+" while (numRemaining>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CompositeArbitraryScopeTest() {
         test(com.aparapi.codegen.test.CompositeArbitraryScope.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CompositeArbitraryScopeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CompositeArbitraryScope.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java b/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java
index b6ef1cf2e98bc1077b2d42f1eb6a4c59f0655d9b..962957ba6ecec24584d35df62e3badf3aed91323 100644
--- a/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ConstantAssignInExpressionTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_ConstantAssignInExpression__func(This *this, int _arg){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int result = 1;\n" +
+" com_amd_aparapi_test_ConstantAssignInExpression__func(this, result=0);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ConstantAssignInExpressionTest() {
         test(com.aparapi.codegen.test.ConstantAssignInExpression.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ConstantAssignInExpressionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ConstantAssignInExpression.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ContinueTest.java b/src/test/java/com/aparapi/codegen/test/ContinueTest.java
index 3e34924822350735754af145509d1a63826106d1..da4aae41768101f46ebd2802a8c64fb4044f8569 100644
--- a/src/test/java/com/aparapi/codegen/test/ContinueTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ContinueTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ContinueTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i<10; i++){\n" +
+" if (i==5){\n" +
+" } else {\n" +
+" pass = 1;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ContinueTest() {
         test(com.aparapi.codegen.test.Continue.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ContinueTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Continue.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java b/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java
index eef016f780c3ccbf8be7baed2bd62f27d4baf436..697ea2f3032f2e01321ac57a74af6d626a996fc7 100644
--- a/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ContinueTortureTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ContinueTortureTest() {
         test(com.aparapi.codegen.test.ContinueTorture.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ContinueTortureTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ContinueTorture.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java b/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java
index e105289d25afb71bba300cfdb3dc6f4ce0770eee..bd39a17486f37945769cb0fb3958da66d960d161 100644
--- a/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class DirectRecursionTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void DirectRecursionTest() {
         test(com.aparapi.codegen.test.DirectRecursion.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void DirectRecursionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.DirectRecursion.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/DoWhileTest.java b/src/test/java/com/aparapi/codegen/test/DoWhileTest.java
index 863699b6d674089d6afa883268cf0cd21db2804c..88198b4b85f90da9d7527e399080d8ca8f747674 100644
--- a/src/test/java/com/aparapi/codegen/test/DoWhileTest.java
+++ b/src/test/java/com/aparapi/codegen/test/DoWhileTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class DoWhileTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" int i = 0;\n" +
+" do{\n" +
+" pass = 1;\n" +
+" i++;\n" +
+" }while (i<10);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void DoWhileTest() {
         test(com.aparapi.codegen.test.DoWhile.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void DoWhileTestWorksWithCaching() {
         test(com.aparapi.codegen.test.DoWhile.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/DremTest.java b/src/test/java/com/aparapi/codegen/test/DremTest.java
index e30bc87225e9fd36618b5aed1ac7863a4eee0e9b..4ec391cac068e3bf06c5710685f1d6ee278dfa87 100644
--- a/src/test/java/com/aparapi/codegen/test/DremTest.java
+++ b/src/test/java/com/aparapi/codegen/test/DremTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class DremTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global double *out;\n" +
+" double m;\n" +
+" double n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global double *out,\n" +
+" double m,\n" +
+" double n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = this->m % this->n;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void DremTest() {
         test(com.aparapi.codegen.test.Drem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void DremTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Drem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java b/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java
index 5024cdc8270d688bd7c1d300b01af3bdc12fdd98..9168956e44e51c10a6ee7fb343ee8438439a72b6 100644
--- a/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java
+++ b/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class EarlyReturnTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" int i=0;\n" +
+" if ((i%2)==0){\n" +
+" return;\n" +
+" }\n" +
+" i++;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void EarlyReturnTest() {
         test(com.aparapi.codegen.test.EarlyReturn.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void EarlyReturnTestWorksWithCaching() {
         test(com.aparapi.codegen.test.EarlyReturn.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java b/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java
index 388c88a4b61cb1659bc355cb4dbef23075a68a8c..039b321476484faea5f567fe060786ffefaac980 100644
--- a/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java
@@ -18,16 +18,32 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class EmptyWhileWithIncTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" for (int x = 0; x++<10;){}\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void EmptyWhileWithIncTest() {
         test(com.aparapi.codegen.test.EmptyWhileWithInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void EmptyWhileWithIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.EmptyWhileWithInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java b/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java
index 67ef9931354f6f0d6e0b83c986631e0a715607b1..e367dddbe217b2f4d540bd3cb3852dfd9bb71a61 100644
--- a/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class EntrypointRecursionTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void EntrypointRecursionTest() {
         test(com.aparapi.codegen.test.EntrypointRecursion.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void EntrypointRecursionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.EntrypointRecursion.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ExTest.java b/src/test/java/com/aparapi/codegen/test/ExTest.java
index 809dd3e102c920feaebe7e61dd25b3e3d21a8796..051eca922a94d6959a4d7b6bf9072472b89e4391 100644
--- a/src/test/java/com/aparapi/codegen/test/ExTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ExTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ExTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int total = 0;\n" +
+" for (int i = 0; i<100; i++){\n" +
+" if ((i % 10)==0 && (i % 4)==0){\n" +
+" total++;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ExTest() {
         test(com.aparapi.codegen.test.Ex.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ExTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Ex.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java
index 49dfd7705b3a58e2e16edb9573f47900b4bbbcbc..d3f55664e5ac2f7599989d4276a95bcd659f7619 100644
--- a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FirstAssignInExpression2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int value = 1;\n" +
+" int result=0;\n" +
+" int assignMe=0;\n" +
+" if (true){\n" +
+" result = assignMe = value;\n" +
+" }else{\n" +
+" assignMe =1;\n" +
+" result=2;\n" +
+" }\n" +
+" result++;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpression2Test() {
         test(com.aparapi.codegen.test.FirstAssignInExpression2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpression2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.FirstAssignInExpression2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java
index 2bf88c25430b42daa127bfafc75d65c651490c6e..144cebca8bc81a7cc638244a65e82419a92ac21b 100644
--- a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FirstAssignInExpressionTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void func(This *this, int _arg){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int result;\n" +
+" func(this, result = 0);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpressionTest() {
         test(com.aparapi.codegen.test.FirstAssignInExpression.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpressionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.FirstAssignInExpression.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java b/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java
index 40595596ad6d464667322f3230ec467fab063435..f05bdb5473d731cec9f8ca47ecaa986aa94a8061 100644
--- a/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FloatParamsSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_FloatParamsSimple__floatParams(This *this, float y){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_FloatParamsSimple__floatParams(this, 0.0f);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsSimpleTest() {
         test(com.aparapi.codegen.test.FloatParamsSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.FloatParamsSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java b/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java
index 378829a1f12ee7c1cbc3703bd2d4d4d7d4041634..968dad9b80a75fd4d2e529e135dba2062fbfaa1e 100644
--- a/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FloatParamsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_FloatParams__addEmUp(This *this, float y, float z){\n" +
+" return(((int)y + (int)z));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int y = 2;\n" +
+" float x = 0.0f;\n" +
+" com_amd_aparapi_test_FloatParams__addEmUp(this, x=(float)y, x);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsTest() {
         test(com.aparapi.codegen.test.FloatParams.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.FloatParams.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java b/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java
index 17cddbcc3de49278db5c7865d3c4dbc0bc24e0bd..f78d08b63e9117ff0d00129ddbaf654805b44a0d 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java
@@ -18,16 +18,61 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAndMandelNoInitializeTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" int iter = 0;\n" +
+" for (; (x2 + y2)<=scaleSquare && iter<this->maxIterations; iter++){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelNoInitializeTest() {
         test(com.aparapi.codegen.test.ForAndMandelNoInitialize.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelNoInitializeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAndMandelNoInitialize.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java b/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java
index 2c80c53f88779b68dc0cfb91e42c8ba5d6837483..d2b055cb814da21ca805de32e403f243d53b64de 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java
@@ -18,16 +18,60 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAndMandelTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" for (int iter = 0; (x2 + y2)<=scaleSquare && iter<this->maxIterations; iter++){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelTest() {
         test(com.aparapi.codegen.test.ForAndMandel.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAndMandel.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAndTest.java b/src/test/java/com/aparapi/codegen/test/ForAndTest.java
index 7240866f1d68edafbf18599b8e5272e443905296..786225ddfbf27ae28d075bae38c1f9036da6a8d8 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAndTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAndTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i>2 && i<10; i++){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAndTest() {
         test(com.aparapi.codegen.test.ForAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java b/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java
index 84dddaf2638bff7b4d48b1e8ee9fbfcff208282a..df54814cb108bcad7eee60c43205b4df71aec165 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAsFirstTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" for (int i = 0; i<1; i++){\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAsFirstTest() {
         test(com.aparapi.codegen.test.ForAsFirst.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAsFirstTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAsFirst.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java b/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java
index afbe1bf3a99fcee188935b70f0291539f6a5124a..fd3491ba27372c995223e995d8de9b99258aee6e 100644
--- a/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForBooleanToggleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i>2 && i<10; i++){\n" +
+" pass = (pass==0)?1:0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForBooleanToggleTest() {
         test(com.aparapi.codegen.test.ForBooleanToggle.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForBooleanToggleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForBooleanToggle.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForBreakTest.java b/src/test/java/com/aparapi/codegen/test/ForBreakTest.java
index 852ac1ad242589178acddc5a0ebea62da07d93db..d12dab142b6f4cf656a5312cca9843c5fea9108f 100644
--- a/src/test/java/com/aparapi/codegen/test/ForBreakTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForBreakTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ForBreakTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ForBreakTest() {
         test(com.aparapi.codegen.test.ForBreak.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForBreakTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForBreak.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForEachTest.java b/src/test/java/com/aparapi/codegen/test/ForEachTest.java
index ed751fadfff5eec997462f81cfc73a4495ea5f28..4f0b782ba7638a4f2feee08ca9187d297360588a 100644
--- a/src/test/java/com/aparapi/codegen/test/ForEachTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForEachTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ForEachTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ForEachTest() {
         test(com.aparapi.codegen.test.ForEach.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForEachTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForEach.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java b/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java
index be67ca88703b6fc2cf09071a6a090cd6b881e266..933895c9a5bde8032e6952a16d85ff43b4b9b1dd 100644
--- a/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java
@@ -18,16 +18,64 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForIfMandelTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" for (int iter = 0; iter<this->maxIterations; iter++){\n" +
+" if ((x2 + y2)<=scaleSquare){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" } else {\n" +
+" count--;\n" +
+" }\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForIfMandelTest() {
         test(com.aparapi.codegen.test.ForIfMandel.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForIfMandelTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForIfMandel.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForIfTest.java b/src/test/java/com/aparapi/codegen/test/ForIfTest.java
index 95a1d3c857abd68f0a0aee7d7954c7e5a96e1ce4..a0d957785d014addf7e0eabbd40d73bbdfff4103 100644
--- a/src/test/java/com/aparapi/codegen/test/ForIfTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForIfTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForIfTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i>2; i++){\n" +
+" if (i==3){\n" +
+" pass = 1;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForIfTest() {
         test(com.aparapi.codegen.test.ForIf.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForIfTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForIf.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForTest.java b/src/test/java/com/aparapi/codegen/test/ForTest.java
index d91894fa87708de20a5b7af3c7aaac14b8d5c81e..c9a26974ca4864591c94da33e570ff7665265d38 100644
--- a/src/test/java/com/aparapi/codegen/test/ForTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i<10; i++){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForTest() {
         test(com.aparapi.codegen.test.For.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForTestWorksWithCaching() {
         test(com.aparapi.codegen.test.For.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FremTest.java b/src/test/java/com/aparapi/codegen/test/FremTest.java
index e2cb8d0db09635461affd2522f2ea6b727a27eb8..95389efb33ab504ebaaf3a7a2b43e058ef33711e 100644
--- a/src/test/java/com/aparapi/codegen/test/FremTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FremTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FremTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global float *out;\n" +
+" float m;\n" +
+" float n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global float *out,\n" +
+" float m,\n" +
+" float n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = this->m % this->n;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FremTest() {
         test(com.aparapi.codegen.test.Frem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FremTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Frem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java b/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java
index d6a56b82fd3a032718a9ecef0344232d7a82425c..8edaf00d395dce66bef5d2ca8006386c1eea1d51 100644
--- a/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IEEERemainderDoubleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global double *out;\n" +
+" double m;\n" +
+" double n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global double *out,\n" +
+" double m,\n" +
+" double n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = remainder(this->m, this->n);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderDoubleTest() {
         test(com.aparapi.codegen.test.IEEERemainderDouble.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderDoubleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IEEERemainderDouble.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java b/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java
index 66511edc041bc10bd9f2db17eed41cc32aaa886a..c591f4faf80c20ea5e445d11488a9cb37c99a440 100644
--- a/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IEEERemainderFloatTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global float *out;\n" +
+" float m;\n" +
+" float n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global float *out,\n" +
+" float m,\n" +
+" float n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = remainder(this->m, this->n);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderFloatTest() {
         test(com.aparapi.codegen.test.IEEERemainderFloat.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderFloatTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IEEERemainderFloat.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfTest.java b/src/test/java/com/aparapi/codegen/test/IfTest.java
index c3163de098953eb4cccdfd6bd4dedd292d971ef5..b9d30e1bb93bd6ce7aadc24a38f7ad49baf7cec3 100644
--- a/src/test/java/com/aparapi/codegen/test/IfTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int testValue = 10;\n" +
+" char pass = 0;\n" +
+" if ( (testValue % 4) == 0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IfTest() {
         test(com.aparapi.codegen.test.If.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java
index 1bd8ff6ce206c5adc8eec667e330fec6b5474fae..aa343693070d0f47d481f48f6cf416b70b1da215 100644
--- a/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java
@@ -18,16 +18,50 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_IfElseIfElseElse_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char c = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" if (c!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" result = 1;\n" +
+" }\n" +
+" }\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_IfElseIfElseElse_ElseTest() {
         test(com.aparapi.codegen.test.If_IfElseIfElseElse_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_IfElseIfElseElse_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_IfElseIfElseElse_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java
index 570d4ac61e44ef474688ffed0f20cbbb979ebffc..19ecd703968372a25da78775e6ad67186bd407bc 100644
--- a/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_IfElse_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" result = 1;\n" +
+" }\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_ElseTest() {
         test(com.aparapi.codegen.test.If_IfElse_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_IfElse_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java b/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java
index 413015b550b551d78f6757c0ee568040c27629ae..babace0624b421f50aec5ff1664e8198e64c2798 100644
--- a/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java
+++ b/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java
@@ -18,16 +18,53 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_IfElse_Else_IfElse_Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char c = 1;\n" +
+" char d = 1;\n" +
+" int count = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" if (c!=0){\n" +
+" count = 1;\n" +
+" } else {\n" +
+" count = 2;\n" +
+" }\n" +
+" } else {\n" +
+" if (d!=0){\n" +
+" count = 3;\n" +
+" } else {\n" +
+" count = 4;\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_Else_IfElse_Test() {
         test(com.aparapi.codegen.test.If_IfElse_Else_IfElse_.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_Else_IfElse_TestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_IfElse_Else_IfElse_.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java b/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java
index 3e9e70c88940ed4a372080f96863af435c1a5892..5ddc53c501328f357c6ff808928efd0cb92ed69e 100644
--- a/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_If_Else2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0 && b!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else2Test() {
         test(com.aparapi.codegen.test.If_If_Else2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_If_Else2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java
index 91106ccbadb3c54c65e3bda2e07a78ac7e26138d..872814b2bfc04333e45126429c9a4ebe8644e032 100644
--- a/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_If_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" }\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_If_ElseTest() {
         test(com.aparapi.codegen.test.If_If_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_If_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_If_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java b/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java
index 6729086b459eb367ccf338d6af33e0edfe9bdf53..147c20b7258a30848f167df88dfd6cfd7c3d984a 100644
--- a/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java
+++ b/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_If_Else_If_Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" }\n" +
+" } else {\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else_If_Test() {
         test(com.aparapi.codegen.test.If_If_Else_If_.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else_If_TestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_If_Else_If_.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java b/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java
index a5bd5e35a0c81e2fe04c45763ef9e7cbb45eefca..24191f4e50cba95b76c63d978955b7e1f797585a 100644
--- a/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_OrOr_AndTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int testValue = 10;\n" +
+" char pass = 0;\n" +
+" if (((testValue % 2)==0 || testValue<=0 || testValue>=100) && (testValue % 4)==0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_OrOr_AndTest() {
         test(com.aparapi.codegen.test.If_OrOr_And.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_OrOr_AndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_OrOr_And.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java
index 34f4211ce4a9a2be5fc9cae071f9ebb0a7c1252c..96d53946702ec170a55ca0fcdcebe6ccbca87aad 100644
--- a/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_While_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" if (a!=0){\n" +
+" for (; a!=0; a = 0){\n" +
+" }\n" +
+" } else {\n" +
+" a = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_While_ElseTest() {
         test(com.aparapi.codegen.test.If_While_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_While_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_While_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java b/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java
index 6ecc568816091fecf78bba577aa2b61cb178f52b..e9f42e99bb696a7955f05595aae34e2e61eaa67c 100644
--- a/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_While_Else_WhileTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" if (a!=0){\n" +
+" for (; a!=0; a = 0){\n" +
+" }\n" +
+" } else {\n" +
+" for (; a==0; a = 1){\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_While_Else_WhileTest() {
         test(com.aparapi.codegen.test.If_While_Else_While.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_While_Else_WhileTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_While_Else_While.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java b/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java
index 212115dc2eeb7ae9544c91d87c5b46f9ab0adac1..f74d054182c01fe428c1aaf4d1b7a2f015c06cec 100644
--- a/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ImplementsInterfaceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int ival;\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_ImplementsInterface__bar(This *this, int n){\n" +
+" return((n + this->ival));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int ival,\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ival = ival;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_ImplementsInterface__bar(this, 1);\n" +
+" char pass = 0;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ImplementsInterfaceTest() {
         test(com.aparapi.codegen.test.ImplementsInterface.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ImplementsInterfaceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ImplementsInterface.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java b/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java
index cdf452b7f2769e464c9ea29cf19da1c6db6d14ee..d7e31a2cb81447fb2e3ba86cacd281c9a605ff34 100644
--- a/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IncArrayArgContentTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *arr;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_IncArrayArgContent__incit(This *this,  __global int* arr){\n" +
+" arr[0]  = arr[0] + 1;\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *arr,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->arr = arr;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_IncArrayArgContent__incit(this, this->arr);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IncArrayArgContentTest() {
         test(com.aparapi.codegen.test.IncArrayArgContent.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IncArrayArgContentTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IncArrayArgContent.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IncFieldTest.java b/src/test/java/com/aparapi/codegen/test/IncFieldTest.java
index b55a7881df21ea5c55ff914d5cc3504b7f9558b7..a2b55db86cc8938e8f1966df7dcdcfffd4875669 100644
--- a/src/test/java/com/aparapi/codegen/test/IncFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IncFieldTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class IncFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void IncFieldTest() {
         test(com.aparapi.codegen.test.IncField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IncFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IncField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java b/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java
index dc00394cbd0176e5fc15816222961e1b93342be3..dfcfac18731983ad6313c3dd3b8732eb1ebe064e 100644
--- a/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class IndirectRecursionTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void IndirectRecursionTest() {
         test(com.aparapi.codegen.test.IndirectRecursion.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IndirectRecursionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IndirectRecursion.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/InterfaceTest.java b/src/test/java/com/aparapi/codegen/test/InterfaceTest.java
index 06f642b29775ff3edb34a95903907c3d76b668d8..c346936653af29c81818435617d3797e88b64164 100644
--- a/src/test/java/com/aparapi/codegen/test/InterfaceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/InterfaceTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class InterfaceTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void InterfaceTest() {
         test(com.aparapi.codegen.test.Interface.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void InterfaceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Interface.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/LongCompareTest.java b/src/test/java/com/aparapi/codegen/test/LongCompareTest.java
index 3ed04f077dbbf3aca33b76dbbdf94d41505468d0..558ea2d3043cbf2cda0d55c0fe4232681137d116 100644
--- a/src/test/java/com/aparapi/codegen/test/LongCompareTest.java
+++ b/src/test/java/com/aparapi/codegen/test/LongCompareTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class LongCompareTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" long n1 = 1L;\n" +
+" long n2 = 2L;\n" +
+" char pass = 0;\n" +
+" if ((n2 - n1)>0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void LongCompareTest() {
         test(com.aparapi.codegen.test.LongCompare.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void LongCompareTestWorksWithCaching() {
         test(com.aparapi.codegen.test.LongCompare.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/LongComparesTest.java b/src/test/java/com/aparapi/codegen/test/LongComparesTest.java
index 18a2436e1d22342b0a262542eedd2a953febfaa7..6dfd649d0d1359d22fc2fee46f52560229043e0c 100644
--- a/src/test/java/com/aparapi/codegen/test/LongComparesTest.java
+++ b/src/test/java/com/aparapi/codegen/test/LongComparesTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class LongComparesTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" long l1 = 1L;\n" +
+" long l2 = 1L;\n" +
+" if ((l1 - l2)>0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void LongComparesTest() {
         test(com.aparapi.codegen.test.LongCompares.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void LongComparesTestWorksWithCaching() {
         test(com.aparapi.codegen.test.LongCompares.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/LoopsTest.java b/src/test/java/com/aparapi/codegen/test/LoopsTest.java
index a9c440880ef8e63290989c35709f8ce85684ccdd..31deb6f6d3ecfb924ecdbf42a2713b42438b9044 100644
--- a/src/test/java/com/aparapi/codegen/test/LoopsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/LoopsTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class LoopsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int sum = 0;\n" +
+" for (int i = 0; i<100; i++){\n" +
+" sum = sum + ++i;\n" +
+" }\n" +
+" for (int i = 0; i<100; i++){\n" +
+" sum = sum + i++;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void LoopsTest() {
         test(com.aparapi.codegen.test.Loops.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void LoopsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Loops.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathAbsTest.java b/src/test/java/com/aparapi/codegen/test/MathAbsTest.java
index 3d0f9415beff496da6c875548a57b316c9db54e0..836e079b08d40189f07086970ea96547a7b3dc82 100644
--- a/src/test/java/com/aparapi/codegen/test/MathAbsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathAbsTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathAbsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d = -1.0;\n" +
+" float f = -1.0f;\n" +
+" int i = -1;\n" +
+" long n = -1L;\n" +
+" char pass = 1;\n" +
+" if (fabs(d)!=1.0 || fabs(f)!=1.0f || abs(i)!=1 || (abs(n) - 1L)!=0){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathAbsTest() {
         test(com.aparapi.codegen.test.MathAbs.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathAbsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathAbs.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java b/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java
index 8dc8a72f5760d1ae73a1d7ae39f8033bcb957f18..79db96b7935e9b2c219c582c25167bffeaff611c 100644
--- a/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathDegRadTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d = -1.0;\n" +
+" float f = -1.0f;\n" +
+" char pass = 1;\n" +
+" if (radians(degrees(d))!=d || radians(degrees(f))!=f){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathDegRadTest() {
         test(com.aparapi.codegen.test.MathDegRad.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathDegRadTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathDegRad.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java b/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java
index fb538a1dc59f3dbb27f09c1bd3a3ce989dfa7097..ced44207788fd5b877d9e2ce3b299533493e6788 100644
--- a/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java
@@ -18,16 +18,46 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathFallThruTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global long *longout;\n" +
+" __global int *intout;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global long *longout,\n" +
+" __global int *intout,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->longout = longout;\n" +
+" this->intout = intout;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" float f1 = 1.0f;\n" +
+" double d1 = 1.0;\n" +
+" this->longout[0]  = round((ceil(cos(exp(floor(log(pow(d1, d1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(d1, d1))))))))));\n" +
+" this->intout[0]  = round((ceil(cos(exp(floor(log(pow(f1, f1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(f1, f1))))))))));\n" +
+" char pass = 0;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathFallThruTest() {
         test(com.aparapi.codegen.test.MathFallThru.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathFallThruTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathFallThru.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathMaxTest.java b/src/test/java/com/aparapi/codegen/test/MathMaxTest.java
index 2add0856e49ccce5f14b019446107ac548ca9355..5a276be4b3d9a8f1dfb2da4ea8ef116396fe66a3 100644
--- a/src/test/java/com/aparapi/codegen/test/MathMaxTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathMaxTest.java
@@ -18,16 +18,48 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathMaxTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d1 = -1.0;\n" +
+" double d2 = 1.0;\n" +
+" float f1 = -1.0f;\n" +
+" float f2 = 1.0f;\n" +
+" int i1 = -1;\n" +
+" int i2 = 1;\n" +
+" long n1 = -1L;\n" +
+" long n2 = 1L;\n" +
+" char pass = 1;\n" +
+" if (fmax(d1, d2)!=1.0 || fmax(f1, f2)!=1.0f || max(i1, i2)!=1 || (max(n1, n2) - 1L)!=0){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathMaxTest() {
         test(com.aparapi.codegen.test.MathMax.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathMaxTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathMax.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathMinTest.java b/src/test/java/com/aparapi/codegen/test/MathMinTest.java
index caa22adbe6013ac956204c8ca77fc1f3c42dfee8..72823b7b4338385cc416025a4cb5d7e9ecdba56f 100644
--- a/src/test/java/com/aparapi/codegen/test/MathMinTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathMinTest.java
@@ -18,16 +18,48 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathMinTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d1 = -1.0;\n" +
+" double d2 = 1.0;\n" +
+" float f1 = -1.0f;\n" +
+" float f2 = 1.0f;\n" +
+" int i1 = -1;\n" +
+" int i2 = 1;\n" +
+" long n1 = -1L;\n" +
+" long n2 = 1L;\n" +
+" char pass = 1;\n" +
+" if (fmin(d1, d2)!=1.0 || fmin(f1, f2)!=1.0f || min(i1, i2)!=1 || (min(n1, n2) - 1L)!=0){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathMinTest() {
         test(com.aparapi.codegen.test.MathMin.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathMinTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathMin.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java b/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java
index 56bd0c8ce44288f3e61443cbc5442410b37b8ad8..97bb42c1cf181d568ca9123162214b271a3ede80 100644
--- a/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathRemainderTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d1 = 7.0;\n" +
+" double d2 = 2.0;\n" +
+" float f1 = 7.0f;\n" +
+" float f2 = 2.0f;\n" +
+" char pass = 1;\n" +
+" if (remainder(d1, d2)!=1.0 || remainder(f1, f2)!=1.0f){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathRemainderTest() {
         test(com.aparapi.codegen.test.MathRemainder.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathRemainderTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathRemainder.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java b/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java
index 54f8a66cb8a60066979c66c98c1e51c01c62224b..ba6db5171f983a0016985042470836dce9155519 100644
--- a/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java
@@ -18,16 +18,49 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MultiContinueTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i<10; i++){\n" +
+" if (i==5){\n" +
+" } else {\n" +
+" if (i==2){\n" +
+" } else {\n" +
+" if (i==1){\n" +
+" } else {\n" +
+" if (i==10){\n" +
+" } else {\n" +
+" pass = 1;\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MultiContinueTest() {
         test(com.aparapi.codegen.test.MultiContinue.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MultiContinueTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MultiContinue.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java b/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java
index 615304a39af2a652ebada1e63101da7df4a9eadc..0670ef1a8dd3b2c0b7ba8bda6fda6cee5b06975b 100644
--- a/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MultipleAssignExprTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_MultipleAssignExpr__sum(This *this, int lhs, int rhs){\n" +
+" return((lhs + rhs));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int a = 0;\n" +
+" int b = 0;\n" +
+" int c = 0;\n" +
+" a = b = c = com_amd_aparapi_test_MultipleAssignExpr__sum(this, 1, 2);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignExprTest() {
         test(com.aparapi.codegen.test.MultipleAssignExpr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignExprTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MultipleAssignExpr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java b/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java
index 85bcd8e15f8ab405015deb86831a3c49cdde9724..1d26c90f00cfabaa2d9dbb203fcfe5622d4760c6 100644
--- a/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MultipleAssignTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int a = 0;\n" +
+" int b = 0;\n" +
+" int c = 0;\n" +
+" a = b = c = 4;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignTest() {
         test(com.aparapi.codegen.test.MultipleAssign.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MultipleAssign.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NaNTest.java b/src/test/java/com/aparapi/codegen/test/NaNTest.java
index 0ed91ff9ae0baaed35643f6f638527bdf3234f41..a3f71b831e9b98f8ea1f6b4b72b8fe634a987b28 100644
--- a/src/test/java/com/aparapi/codegen/test/NaNTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NaNTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NaNTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d = 1.0E-10;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NaNTest() {
         test(com.aparapi.codegen.test.NaN.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NaNTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NaN.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java b/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java
index 4fb9aaa2a903c1b6cc2146345ad592b7f79c60f7..f316a8a34c661cc306ee6c12365a1906147722ab 100644
--- a/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NewLocalArrayTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" int i = 0;\n" +
+" if (i++==0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NewLocalArrayTest() {
         test(com.aparapi.codegen.test.NewLocalArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NewLocalArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NewLocalArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java b/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java
index 8c69e7e09c98698e0f4b7fb600a9c873fc394029..cbd60087c591c88a09d27bc156b51e3e63c78e57 100644
--- a/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NonNullCheckTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" if (this->ints != NULL){\n" +
+" int value = this->ints[0];\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NonNullCheckTest() {
         test(com.aparapi.codegen.test.NonNullCheck.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NonNullCheckTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NonNullCheck.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NullCheckTest.java b/src/test/java/com/aparapi/codegen/test/NullCheckTest.java
index c6c0d882f5d0e28c5caa5f441dff1c1b45c7856d..d3335fac9f89f66bc9a08e76b4d33b72c92f4cd3 100644
--- a/src/test/java/com/aparapi/codegen/test/NullCheckTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NullCheckTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NullCheckTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" if (this->ints == NULL){\n" +
+" return;\n" +
+" }\n" +
+" int value = this->ints[0];\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NullCheckTest() {
         test(com.aparapi.codegen.test.NullCheck.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NullCheckTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NullCheck.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java
index 4084dd852096fabc11db81bf18efca8a1ce3bddd..bec4b2bdae9bcc518755a157de94fdd8c58281fa 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayCallHierarchyTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCallHierarchyTest() {
         test(com.aparapi.codegen.test.ObjectArrayCallHierarchy.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCallHierarchyTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayCallHierarchy.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java
index 81fa2518cd42892111dcfe9373ce0f1175391b06..2acf29d4ff38717b146ac0f7fb071401a2bef92e 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayCommonSuperTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCommonSuperTest() {
         test(com.aparapi.codegen.test.ObjectArrayCommonSuper.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCommonSuperTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayCommonSuper.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java
index a0668bd7a7c29d5deb00161f27f755e69098f407..8677dabbb26eddfade27371ab12e9f9b4db6e7d8 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberAccessTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = {""};
+    private static final String[] expectedOpenCL = {
+        "typedef struct com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA_s{\n" +
+" int  mem;\n" +
+" float  floatField;\n" +
+"\n" +
+" } com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA *dummy;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA *dummy,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->dummy = dummy;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" this->dummy[myId].mem=this->dummy[myId].mem + 2;\n" +
+" this->dummy[myId].floatField=this->dummy[myId].floatField + 2.0f;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberAccessTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberAccess.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberAccessTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberAccess.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java
index a13c8cad92363da4247a6e0b73bad560e08a9e58..d10237edf88abfad26e740642825078a65d0a3f5 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayMemberBadGetterTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadGetterTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadGetter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadGetterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadGetter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java
index 498bb833191a46120aeb4b1df1357119758fb3e2..33bd9dbf49129b3d1189f990c14357a0e2bdd72a 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayMemberBadSetterTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadSetterTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadSetter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadSetterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadSetter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java
index ca92e44b73b3f63f2bebad0751ee71368f624427..0b0e20bb82bb6a0348d8b12536530004287e6214 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java
@@ -18,16 +18,56 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberCallTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA_s{\n" +
+" int  mem;\n" +
+"\n" +
+" } com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *dummy;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__getMem( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this){\n" +
+" return(this->mem);\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x, int y){\n" +
+" return((x + y));\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUpPlusOne( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x, int y){\n" +
+" return(((com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp(this, x, y) + 1) + com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__getMem(this)));\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addToMem( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x){\n" +
+" return((x + this->mem));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *dummy,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->dummy = dummy;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" this->dummy[myId].mem=com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp( &(this->dummy[myId]), this->dummy[myId].mem, 2);\n" +
+" int tmp = com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addToMem( &(this->dummy[myId]), 2);\n" +
+" int tmp2 = com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUpPlusOne( &(this->dummy[myId]), 2, tmp);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberCallTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberCall.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberCallTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberCall.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java
index 24bfc5cf8ae60845ddf373cd515685c1379dcab2..e2623a006ddb85dcec9937cfb6288544a8e33a2b 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java
@@ -18,16 +18,114 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberGetterSetterTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct com_amd_aparapi_test_TheOtherOne_s{\n" +
+" int  mem;\n" +
+"\n" +
+" } com_amd_aparapi_test_TheOtherOne;\n" +
+"\n" +
+" typedef struct com_amd_aparapi_test_DummyOOA_s{\n" +
+" long  longField;\n" +
+" float  floatField;\n" +
+" int  mem;\n" +
+" char  boolField;\n" +
+" char _pad_17;\n" +
+" char _pad_18;\n" +
+" char _pad_19;\n" +
+" char _pad_20;\n" +
+" char _pad_21;\n" +
+" char _pad_22;\n" +
+" char _pad_23;\n" +
+"\n" +
+" } com_amd_aparapi_test_DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" int something;\n" +
+" __global com_amd_aparapi_test_DummyOOA *dummy;\n" +
+" __global com_amd_aparapi_test_TheOtherOne *other;\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_DummyOOA__setBoolField( __global com_amd_aparapi_test_DummyOOA *this, char x){\n" +
+" this->boolField=x;\n" +
+" return;\n" +
+" }\n" +
+" char com_amd_aparapi_test_DummyOOA__isBoolField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->boolField);\n" +
+" }\n" +
+" char com_amd_aparapi_test_DummyOOA__getBoolField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->boolField);\n" +
+" }\n" +
+" void com_amd_aparapi_test_DummyOOA__setFloatField( __global com_amd_aparapi_test_DummyOOA *this, float x){\n" +
+" this->floatField=x;\n" +
+" return;\n" +
+" }\n" +
+" float com_amd_aparapi_test_DummyOOA__getFloatField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->floatField);\n" +
+" }\n" +
+" void com_amd_aparapi_test_DummyOOA__setLongField( __global com_amd_aparapi_test_DummyOOA *this, long x){\n" +
+" this->longField=x;\n" +
+" return;\n" +
+" }\n" +
+" long com_amd_aparapi_test_DummyOOA__getLongField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->longField);\n" +
+" }\n" +
+" void com_amd_aparapi_test_TheOtherOne__setMem( __global com_amd_aparapi_test_TheOtherOne *this, int x){\n" +
+" this->mem=x;\n" +
+" return;\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(This *this){\n" +
+" return(this->something);\n" +
+" }\n" +
+" int com_amd_aparapi_test_TheOtherOne__getMem( __global com_amd_aparapi_test_TheOtherOne *this){\n" +
+" return(this->mem);\n" +
+" }\n" +
+" void com_amd_aparapi_test_DummyOOA__setMem( __global com_amd_aparapi_test_DummyOOA *this, int x){\n" +
+" this->mem=x;\n" +
+" return;\n" +
+" }\n" +
+" int com_amd_aparapi_test_DummyOOA__getMem( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->mem);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int something,\n" +
+" __global com_amd_aparapi_test_DummyOOA *dummy,\n" +
+" __global com_amd_aparapi_test_TheOtherOne *other,\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->something = something;\n" +
+" this->dummy = dummy;\n" +
+" this->other = other;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" int tmp = com_amd_aparapi_test_DummyOOA__getMem( &(this->dummy[myId]));\n" +
+" com_amd_aparapi_test_DummyOOA__setMem( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getMem( &(this->dummy[myId])) + 2));\n" +
+" com_amd_aparapi_test_DummyOOA__setMem( &(this->dummy[myId]), (com_amd_aparapi_test_TheOtherOne__getMem( &(this->other[myId])) + com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this)));\n" +
+" com_amd_aparapi_test_TheOtherOne__setMem( &(this->other[myId]), (com_amd_aparapi_test_TheOtherOne__getMem( &(this->other[myId])) + com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this)));\n" +
+" com_amd_aparapi_test_DummyOOA__setLongField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getLongField( &(this->dummy[myId])) + 2L));\n" +
+" com_amd_aparapi_test_DummyOOA__setFloatField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getFloatField( &(this->dummy[myId])) + 2.0f));\n" +
+" com_amd_aparapi_test_DummyOOA__setBoolField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getBoolField( &(this->dummy[myId])) | com_amd_aparapi_test_DummyOOA__isBoolField( &(this->dummy[myId]))));\n" +
+" this->out[myId]  = com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberGetterSetterTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberGetterSetter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberGetterSetterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberGetterSetter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java
index c68776349f5d7b616ed0ec0eefcee40b1d17f88d..a8e1b3d2053d2984ef121cf1f162c468678401b8 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java
@@ -18,16 +18,57 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberHierarchyTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA_s{\n" +
+" float  floatField;\n" +
+" int  intField;\n" +
+"\n" +
+" } com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" int something;\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this, float x){\n" +
+" this->floatField=x;\n" +
+" return;\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(This *this){\n" +
+" return(this->something);\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this){\n" +
+" return(this->intField);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int something,\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->something = something;\n" +
+" this->dummy = dummy;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" this->dummy[myId].intField=(com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( &(this->dummy[myId])) + 2) + com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(this);\n" +
+" com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( &(this->dummy[myId]), (this->dummy[myId].floatField + 2.0f));\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberHierarchyTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberHierarchy.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberHierarchyTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberHierarchy.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java
index 670bc8f53f32130bb4585f3187911a6fa7b1ab55..d8be9932d2f38ffeaa686e2e0f70da25cde09b25 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayMemberNotFinalTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberNotFinalTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberNotFinal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberNotFinalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberNotFinal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java b/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java
index ed57657a52339d3b1bda09a805e6de8224a90405..e3978c7d9f88fca3f89e3e688b879f0da554fb38 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectRefCopyTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectRefCopyTest() {
         test(com.aparapi.codegen.test.ObjectRefCopy.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectRefCopyTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectRefCopy.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java b/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java
index 8ca7c5a1d743aa47996ee9d6f88488cd944a5121..b19700dda5b9da3210bf2b24358d44adcd2ba06b 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java
@@ -15,19 +15,20 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectWithinObjectTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
+    
     @Test
     public void ObjectWithinObjectTest() {
         test(com.aparapi.codegen.test.ObjectWithinObject.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void ObjectWithinObjectTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectWithinObject.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java b/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java
index 13ccf8468125907fc945857035c276a20e9ed5a0..8649bded43fd8a0c4303a3aa8c77a65e1ca45e3f 100644
--- a/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class OrAndOrPrecedenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char c = 1;\n" +
+" char d = 1;\n" +
+" char pass = 0;\n" +
+" if ((a!=0 || b!=0) && (c!=0 || d!=0)){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void OrAndOrPrecedenceTest() {
         test(com.aparapi.codegen.test.OrAndOrPrecedence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void OrAndOrPrecedenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.OrAndOrPrecedence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java b/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java
index 904f8856dc2a0b136fda084fb5338903c90f19e4..5584ef3cbc64f1c3453ad01a42b5d542bbd4c957 100644
--- a/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java
+++ b/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class OverloadMethodTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverloadMethod__foo(This *this, int a, int b){\n" +
+" return(min(a, b));\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverloadMethod__foo(This *this, int n){\n" +
+" return((n + 1));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_OverloadMethod__foo(this, 2) + com_amd_aparapi_test_OverloadMethod__foo(this, 2, 3);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void OverloadMethodTest() {
         test(com.aparapi.codegen.test.OverloadMethod.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void OverloadMethodTestWorksWithCaching() {
         test(com.aparapi.codegen.test.OverloadMethod.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java b/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java
index aec126be47a3cc5a04d1f5ab296704b4110421d9..f00ab7b06610b152b4e4007a04245e1329113883 100644
--- a/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class OverriddenKernelFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverriddenKernelFieldParent__foo(This *this, int n){\n" +
+" this->out[0]  = n + 1;\n" +
+" return(this->out[0]);\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverriddenKernelField__foo(This *this, int n){\n" +
+" return(com_amd_aparapi_test_OverriddenKernelFieldParent__foo(this, (n + 1)));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_OverriddenKernelField__foo(this, 2);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void OverriddenKernelFieldTest() {
         test(com.aparapi.codegen.test.OverriddenKernelField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void OverriddenKernelFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.OverriddenKernelField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PlayPenTest.java b/src/test/java/com/aparapi/codegen/test/PlayPenTest.java
index 6e921b08b01c2c44cd255c43ab51332a0dd61980..01c2387a4f54c597fd9040f123db1a794a939bcc 100644
--- a/src/test/java/com/aparapi/codegen/test/PlayPenTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PlayPenTest.java
@@ -18,16 +18,51 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PlayPenTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int testValue = 10;\n"
+        + " char pass = 0;\n"
+        + " if ((testValue % 2)==0 || testValue<=0 && testValue>=100 && (testValue % 4)==0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " if ((testValue<3 || testValue>5) && (testValue<2 || testValue>2) || testValue>5){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " char a = 0;\n"
+        + " char b = 0;\n"
+        + " char c = 0;\n"
+        + " char d = 0;\n"
+        + " char e = 0;\n"
+        + " char f = 0;\n"
+        + " if ((a!=0 || b!=0 && c!=0 && d!=0) && e!=0 || f!=0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PlayPenTest() {
         test(com.aparapi.codegen.test.PlayPen.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PlayPenTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PlayPen.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java
index a08cb92f757941851def365ec690fc7e445c14ad..438f715a554bfea850544e8e2d26a936c922b033 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int a = 10;\n"
+        + " this->values[a]  = this->results[a]--;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecArrayItemTest() {
         test(com.aparapi.codegen.test.PostDecArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java b/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java
index 8299068896c0c7f2a2d1302358b3e2ae9a96ae99..7328f9053de121daade73405505e6ab4c3411490 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecByteTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " char com_amd_aparapi_test_PostDecByte__incByte(This *this, char a){\n"
+        + " return(a++);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char startValue = 3;\n"
+        + " char result = com_amd_aparapi_test_PostDecByte__incByte(this, startValue--);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecByteTest() {
         test(com.aparapi.codegen.test.PostDecByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java b/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java
index 1cf61e6ec46c5b6e022056815f88e72250686650..632822b2c542bcb5ff0ff3d2c0bf71ab22bf679d 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecLocalTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " if (i--==0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecLocalTest() {
         test(com.aparapi.codegen.test.PostDecLocal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecLocalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecLocal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java b/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java
index 5760f04b71cd6b979d4e6107714a3d4b6f3e8ed0..817f162d99dc94bf8ef5c3c785ce2061804093d1 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecPostIncTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " int result = 0;\n"
+        + " result = i-- + i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecPostIncTest() {
         test(com.aparapi.codegen.test.PostDecPostInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecPostIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecPostInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java b/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java
index 1d98bc01f81d148bc1b4313cf5b4a312c32d7772..71da203b47bf3c1cf693bd633678e1adbda9fbf4 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncArrayIndexAndElementTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *array;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *array,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->array = array;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " this->array[i++]  = this->array[i] + 1;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayIndexAndElementTest() {
         test(com.aparapi.codegen.test.PostIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayIndexAndElementTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java
index 2e93a03140c084044e424258ef842274dabbd05c..e232d257b4954c9f1131c8a10d024e9b484eafe3 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int a = 10;\n"
+        + " this->values[a]  = this->results[a]++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemTest() {
         test(com.aparapi.codegen.test.PostIncArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java b/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java
index 797fa05bce97bb82d4547d07bf41cbad11ae8a57..38514df04de163a43447c44f79e1f1a6ca205124 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PostIncByteFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteFieldTest() {
         test(com.aparapi.codegen.test.PostIncByteField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncByteField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java b/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java
index 8bda1cdc518b5ce3bb6de356702852869b6075f5..32b237694393600e5a030d72ebaf5d3a4cb0607c 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncByteTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " char com_amd_aparapi_test_PostIncByte__incByte(This *this, char a){\n"
+        + " return(a++);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char startValue = 3;\n"
+        + " char result = com_amd_aparapi_test_PostIncByte__incByte(this, startValue++);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteTest() {
         test(com.aparapi.codegen.test.PostIncByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java b/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
index e30c8d63432e30219be84af8b415d03512eb49c5..8554bab6f5ecdd752c03d0f1b5b7fbb19e909666 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
@@ -15,11 +15,12 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PostIncIntFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
     @org.junit.Ignore
     @Test
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java b/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java
index 2bb23ad63f06cfcd30689274dddc853f07a9f86c..63e925d9fa5bda2fae5defb755221aacbbd452a9 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " int com_amd_aparapi_test_PostIncInt__foo(This *this, int a){\n"
+        + " return(a);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " com_amd_aparapi_test_PostIncInt__foo(this,y++);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncIntTest() {
         test(com.aparapi.codegen.test.PostIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java b/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java
index 66206406926360059a9c6a2d91b81b3139e87d99..63fef466ef546af6435a99042f98dda51758a78f 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncLocalStandaloneTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalStandaloneTest() {
         test(com.aparapi.codegen.test.PostIncLocalStandalone.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalStandaloneTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncLocalStandalone.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java b/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java
index 56c0ad287546e49ede701369ee1cd7d02d323f85..338d1656ea4f883c20661892a843bb430595a7ce 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncLocalTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " if (i++==0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalTest() {
         test(com.aparapi.codegen.test.PostIncLocal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncLocal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java b/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java
index b7f09509ff5228ac590a522fde0ffe1b83a9ecaa..1795f527ced33f8fdb6c88188f48f94fe3d76d06 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncLocalTwiceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " if ((i++ + i++)==1){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void PostIncLocalTwiceTest() {
         test(com.aparapi.codegen.test.PostIncLocalTwice.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void PostIncLocalTwiceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncLocalTwice.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java b/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java
index c8735552bbac98985a58add592c363dcfdb955c0..9a160facf8a5db89a6ec0560e8b27aa600d1e9c6 100644
--- a/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreDecArrayIndexAndElementTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *array;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *array,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->array = array;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " this->array[--i]  = this->array[i] - 1;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayIndexAndElementTest() {
         test(com.aparapi.codegen.test.PreDecArrayIndexAndElement.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayIndexAndElementTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreDecArrayIndexAndElement.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java
index 7e47fb3a92924a0d265add1194c7751a5e110b76..f5093e2e47d3d315c1cd4941dfebd5db55081dd8 100644
--- a/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreDecArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " this->values[y]  = --this->results[y];\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayItemTest() {
         test(com.aparapi.codegen.test.PreDecArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreDecArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java b/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java
index d9db00d800fa45af358948b128c3aeccf7031e7e..34f7b11c1f5b9b428d6d652970a2e38b0a6f7ac6 100644
--- a/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreDecPostIncTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " int result = 0;\n"
+        + " i--;\n"
+        + " result = i + i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreDecPostIncTest() {
         test(com.aparapi.codegen.test.PreDecPostInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreDecPostIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreDecPostInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java b/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java
index fb080c0bf760bc36c3c0f174183d978b338fa42c..25184eeacab093a87bae9ddc49efdc85c2164f36 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncArrayIndexAndElementTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *array;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *array,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->array = array;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " this->array[++i]  = this->array[i] + 1;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayIndexAndElementTest() {
         test(com.aparapi.codegen.test.PreIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayIndexAndElementTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java
index 7b8430bbfddc9468f8b933cdc62166634f3ac653..7833f74d68e37704b88cf66481bc4cfcaa5acbb7 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " this->values[y]  = ++this->results[y];\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayItemTest() {
         test(com.aparapi.codegen.test.PreIncArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java b/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java
index a583a3f8f8515ca57e2ab04778c52c31adee414b..0c689be5d3c105e4a62c2907dbc8ac746ee88231 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PreIncByteFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteFieldTest() {
         test(com.aparapi.codegen.test.PreIncByteField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncByteField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java b/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java
index 8e5d4a57c5134cf5dff122385dafed7292ac7e57..2bca2a98f8a651bca9a252b7a7e35422c59f7e72 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncByteTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " char com_amd_aparapi_test_PreIncByte__preIncByte(This *this, char a){\n"
+        + " a = (char )(a + 1);\n"
+        + " return(a);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char initValue = 0;\n"
+        + " char result = com_amd_aparapi_test_PreIncByte__preIncByte(this, ++initValue);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteTest() {
         test(com.aparapi.codegen.test.PreIncByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java b/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java
index bc30e352656bc48e239598d2bc0fdc4c0d633ec7..4e174eab1a14a3c62dac3d2d0c219fd6afd212e7 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PreIncIntFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PreIncIntFieldTest() {
         test(com.aparapi.codegen.test.PreIncIntField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncIntFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncIntField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java b/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java
index fb08ef48b92abaf7bb52b3f7f1eb48a2d2987d0b..3380d14818c1aac3f774f0fd94404a54cb49ae99 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " int com_amd_aparapi_test_PreIncInt__preIncInt(This *this, int a){\n"
+        + " return(a);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " com_amd_aparapi_test_PreIncInt__preIncInt(this,++y);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void PreIncIntTest() {
         test(com.aparapi.codegen.test.PreIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void PreIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java b/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java
index 5a5eb987d780611ea7dce7c745c6325a5a00fe36..bee32521c7c88ba5c5ff82cc5ff680270af905db 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncLocalStandaloneTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalStandaloneTest() {
         test(com.aparapi.codegen.test.PreIncLocalStandalone.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalStandaloneTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncLocalStandalone.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java b/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java
index cc2a25ca1e161088b22f39ccff44d6ec8cfff06f..4ebbe80529c05d3e73f19decd8a4603c19331b14 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncLocalTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " if (i==1){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTest() {
         test(com.aparapi.codegen.test.PreIncLocal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncLocal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java b/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java
index 7bbbefaac9ac8722160c0719406908cffb63a7c5..f542541a422e1000cc73f43aa0713c676513cad1 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncLocalTwiceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " if ((i++ + i)==3){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTwiceTest() {
         test(com.aparapi.codegen.test.PreIncLocalTwice.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTwiceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncLocalTwice.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java b/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java
index 6c2bf359b9e392cdf425a92eb5bf078c506ceb85..e37330fe91857e54cddbc281e81bae8d41e690ed 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnBooleanNewArrayTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanNewArrayTest() {
         test(com.aparapi.codegen.test.ReturnBooleanNewArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanNewArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnBooleanNewArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java b/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java
index 4568c206d0a8ffe099415282b60a26b95bda947f..f1439e392168898c489e89e3e38f128b44c8c523 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnBooleanVarArrayTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanVarArrayTest() {
         test(com.aparapi.codegen.test.ReturnBooleanVarArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanVarArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnBooleanVarArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java
index 8fab6de2779ce46058d601f07b5343a336b0a2b8..a0134a0f65a459d96cebd2842d98b33d513740cd 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java
@@ -15,19 +15,20 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnByteArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
+    
     @Test
     public void ReturnByteArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnByteArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void ReturnByteArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnByteArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java
index 75841058266799ab2830cafdcc4adf32670dbe26..2b83d4d7c4814bab98dd11d9f77a8897609ce16f 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnByteArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnByteArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnByteArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnByteArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnByteArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java
index 5ced42b86e5f3856fe7d23b2ee2d070368c80a30..9c2433f5fa69231adf58540a8529bb0ec44ea741 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnDoubleArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java
index 83738972b2b2ca20183e08581d2fe2c7c1b4e6fc..1517e6081825f777cb3ed13566878111fbee7ea1 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnDoubleArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java
index 52667c043f21f2efbbef76a1437a923513304431..431d54a654261dd115d00ffb975e60eeee93244e 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnFloatArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnFloatArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnFloatArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java
index 944908e1f6602ad0ce4993520104472d1d76ccd2..48fd6b0dbfe3ba31ef59054be675df4ef4874bc4 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnFloatArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnFloatArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnFloatArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java
index 67d61f2778273bf5a8aaa3eb79ee9a40d1564000..fe067d9de52cd54e482b748e59135e23609e7d06 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnIntArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnIntArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnIntArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java
index 22f46dce49abe65ff755de98c4930f2d2136b2de..a032b2c1ae0c4184e360c216c77081161e468a7c 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnIntArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnIntArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnIntArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java
index 1494821d38af402084a1bebfc326c86afe4ce516..b9c5c2a5a718a4018672e45125c5b872347c4045 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnLongArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnLongArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnLongArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java
index 9b358a7d95b8ec1fd772aba4efd678af5a8abc1a..f71c402df91fbcf8eef169d038ab27ec7d4cf10d 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnLongArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnLongArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnLongArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java b/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java
index 34f549ed28d6b908a07d42bdb3b86dc45bc5eda5..4532b453198a653e659142cb156be1eb88b482cf 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ReturnPostIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " int com_amd_aparapi_test_ReturnPostIncInt__returnPostIncInt(This *this, int value){\n"
+        + " return(value++);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " com_amd_aparapi_test_ReturnPostIncInt__returnPostIncInt(this, 3);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ReturnPostIncIntTest() {
         test(com.aparapi.codegen.test.ReturnPostIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnPostIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnPostIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java b/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java
index ea509daf65ff7cfe5ac6a1ca874794d68807c777..a46ec32b6e5021c4d190b5d15e1ab8e612b97128 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ReturnPreIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " int com_amd_aparapi_test_ReturnPreIncInt__returnPreIncInt(This *this, int value){\n"
+        + " value++;\n"
+        + " return(value);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " com_amd_aparapi_test_ReturnPreIncInt__returnPreIncInt(this, 3);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ReturnPreIncIntTest() {
         test(com.aparapi.codegen.test.ReturnPreIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnPreIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnPreIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java
index 7415307be5eeb1c6fcce8f817ef9ac608b0b6e4f..4b4e5f8f2240d5f7c21f88520d75e511c8e9d674 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnShortArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnShortArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnShortArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java
index e02e8dc3bdc84d2c7a3dea6e1d06d906f6702d2f..42bdefbb1909f3824b606627a58331c047665693 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnShortArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnShortArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnShortArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java b/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java
index 3f168385d7994fb7be2a509484d6f1ad8eb49441..d48ffb0a78f6f3639758f4aeb2d7c0285b97a9f5 100644
--- a/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class RightShiftsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *iout;\n"
+        + " int i1;\n"
+        + " int i2;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *iout,\n"
+        + " int i1,\n"
+        + " int i2,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->iout = iout;\n"
+        + " this->i1 = i1;\n"
+        + " this->i2 = i2;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " this->iout[1]  = this->i1 >> this->i2;\n"
+        + " this->iout[2]  = ((unsigned int)this->i1) >> this->i2;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void RightShiftsTest() {
         test(com.aparapi.codegen.test.RightShifts.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void RightShiftsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.RightShifts.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/SequenceTest.java b/src/test/java/com/aparapi/codegen/test/SequenceTest.java
index 3437d5a5b542e068c3a996aa4396d522944bfb6a..8efd40a100f570da710db3526b3cc6f6b638f214 100644
--- a/src/test/java/com/aparapi/codegen/test/SequenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/SequenceTest.java
@@ -18,16 +18,33 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class SequenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void SequenceTest() {
         test(com.aparapi.codegen.test.Sequence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void SequenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Sequence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java b/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java
index 5e12e0b10a8dac521fdbbac5845af41e34f4215b..fdb2b4d561ae323133f3bb67afd6a62847d22801 100644
--- a/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java
+++ b/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class StaticFieldStoreTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void StaticFieldStoreTest() {
         test(com.aparapi.codegen.test.StaticFieldStore.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void StaticFieldStoreTestWorksWithCaching() {
         test(com.aparapi.codegen.test.StaticFieldStore.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java b/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java
index 5540106faabded73857907fdb2f7b6a7121eb737..5aa9af7fed2a87a8f0fb826ef4124f26e62d9933 100644
--- a/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java
+++ b/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class StaticMethodCallTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *out;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " int com_amd_aparapi_test_StaticMethodCall__add(int i, int j){\n"
+        + " return((i + j));\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " __global int *out,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->out = out;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " this->out[0]  = com_amd_aparapi_test_StaticMethodCall__add(1, 2);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void StaticMethodCallTest() {
         test(com.aparapi.codegen.test.StaticMethodCall.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void StaticMethodCallTestWorksWithCaching() {
         test(com.aparapi.codegen.test.StaticMethodCall.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java b/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java
index 694d80171e7868d2a566dccc2310e3c493bb00c6..aa2acc225ed45742ed7da04bf8252edde3ed7066 100644
--- a/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class SynchronizedMethodsTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void SynchronizedMethodsTest() {
         test(com.aparapi.codegen.test.SynchronizedMethods.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void SynchronizedMethodsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.SynchronizedMethods.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TernaryTest.java b/src/test/java/com/aparapi/codegen/test/TernaryTest.java
index 303965c4dc1a19bd1e27a739650f0651abe0f5f8..04ca55724c87820520c2d727b5d56588e3056d8a 100644
--- a/src/test/java/com/aparapi/codegen/test/TernaryTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TernaryTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TernaryTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " float com_amd_aparapi_test_Ternary__random(This *this){\n"
+        + " return(0.1f);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int count = (com_amd_aparapi_test_Ternary__random(this)>0.5f)?1:-1;\n"
+        + " int foo = 3;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void TernaryTest() {
         test(com.aparapi.codegen.test.Ternary.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TernaryTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Ternary.class, expectedException, expectedOpenCL);