diff --git a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeTest.java b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeTest.java
index b18e9725cc6cf74d367c2d31de92b4ee90903995..0cb34f7da729d0950af8220e478bcde16b8b653d 100644
--- a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeTest.java
@@ -18,16 +18,69 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArbitraryScopeTest 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"
+        + "\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"
+        + " 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"
+        + " }\n"
+        + " float scaleSquare = 1.0f;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScopeTest() {
         test(com.aparapi.codegen.test.ArbitraryScope.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScopeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArbitraryScope.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/Assign2DIntArrayTest.java b/src/test/java/com/aparapi/codegen/test/Assign2DIntArrayTest.java
index cbdc2c8b803297fd92f906eb17b0c38571a42ec5..d67544810cf492e4cdea5b357fa1c2543a4b4563 100644
--- a/src/test/java/com/aparapi/codegen/test/Assign2DIntArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/Assign2DIntArrayTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class Assign2DIntArrayTest 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 Assign2DIntArrayTest() {
         test(com.aparapi.codegen.test.Assign2DIntArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void Assign2DIntArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Assign2DIntArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterSimpleTest.java b/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterSimpleTest.java
index c30743c14cdc1990d91db5a3ccf176e33b5bafda..c7ac96d4158b7a8c363dfc9e8115a28e642f88ee 100644
--- a/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterSimpleTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class AssignAndPassAsParameterSimpleTest 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 AssignAndPassAsParameterSimpleTest() {
         test(com.aparapi.codegen.test.AssignAndPassAsParameterSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AssignAndPassAsParameterSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AssignAndPassAsParameterSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterTest.java b/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterTest.java
index 8c15f7879e121f2d0857ef611bbc55812e1eb921..1196ac67492789974571b775b9bc8c130f103ac5 100644
--- a/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AssignAndPassAsParameterTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AssignAndPassAsParameterTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *results;\n"
+        + " int y;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " int com_amd_aparapi_test_AssignAndPassAsParameter__actuallyDoIt(This *this, int a){\n"
+        + " return(1);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " __global int *results,\n"
+        + " int y,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->results = results;\n"
+        + " this->y = y;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " com_amd_aparapi_test_AssignAndPassAsParameter__actuallyDoIt(this, this->results[this->y]  = com_amd_aparapi_test_AssignAndPassAsParameter__actuallyDoIt(this, this->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 AssignAndPassAsParameterTest() {
         test(com.aparapi.codegen.test.AssignAndPassAsParameter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AssignAndPassAsParameterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AssignAndPassAsParameter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ByteParamsTest.java b/src/test/java/com/aparapi/codegen/test/ByteParamsTest.java
index 4f8f6063581d61706a9f59272c3dddcdbe1968dc..670ef08e7cee0727c5a4913195659d7387e3e334 100644
--- a/src/test/java/com/aparapi/codegen/test/ByteParamsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ByteParamsTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ByteParamsTest 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_ByteParams__addEmUp2(This *this, char x, char y){\n"
+        + " return((char )(x + y));\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_ByteParams__addEmUp2(this, bb = cc, cc);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ByteParamsTest() {
         test(com.aparapi.codegen.test.ByteParams.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ByteParamsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ByteParams.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfAndAndAndTest.java b/src/test/java/com/aparapi/codegen/test/IfAndAndAndTest.java
index aef528e3c3f4d7742fc436b03d38826da420adf6..4a5675364844661a341418220819e3ebb8d67948 100644
--- a/src/test/java/com/aparapi/codegen/test/IfAndAndAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfAndAndAndTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfAndAndAndTest 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<=10 && testValue>=0 && (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 IfAndAndAndTest() {
         test(com.aparapi.codegen.test.IfAndAndAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfAndAndAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfAndAndAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfAndAndTest.java b/src/test/java/com/aparapi/codegen/test/IfAndAndTest.java
index cd15b208a688e165336b21dfd99803d248471b35..ddac28ce2ccb8238acc734653c741780f0acc61f 100644
--- a/src/test/java/com/aparapi/codegen/test/IfAndAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfAndAndTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfAndAndTest 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>=0 && testValue<100 && testValue==20){\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 IfAndAndTest() {
         test(com.aparapi.codegen.test.IfAndAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfAndAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfAndAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfAndOrAndTest.java b/src/test/java/com/aparapi/codegen/test/IfAndOrAndTest.java
index 45c17836462da447b73ba42135569361913420af..8e91650a5d4c2f2b905b4ddd4d4b515246ea040e 100644
--- a/src/test/java/com/aparapi/codegen/test/IfAndOrAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfAndOrAndTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfAndOrAndTest 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<=10 || testValue>=0 && (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 IfAndOrAndTest() {
         test(com.aparapi.codegen.test.IfAndOrAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void IfAndOrAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfAndOrAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfAndTest.java b/src/test/java/com/aparapi/codegen/test/IfAndTest.java
index bed08fc7bf16c5a2141af500f309bd07925ae121..d469c0fa4d4a50cfd8f8f91cc6a1da010d3b9996 100644
--- a/src/test/java/com/aparapi/codegen/test/IfAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfAndTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfAndTest 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>=0 && testValue<100){\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 IfAndTest() {
         test(com.aparapi.codegen.test.IfAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndAndTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndAndTest.java
index c6cc2b25dfacc7b7a9dde09cbce6bd0c229e7d00..aa642c0eba770c15ee5d3ebfee46654925fd3646 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndAndTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanAndAndAndTest 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 IfBooleanAndAndAndTest() {
         test(com.aparapi.codegen.test.IfBooleanAndAndAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanAndAndAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanAndAndAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndOrTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndOrTest.java
index b3d68a81bd7567ba4786cb6279ea4dfc5e4e4a0e..c637d4ff7e9caf1fe27c541f0509bf053caaa50e 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanAndAndOrTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanAndAndOrTest 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 IfBooleanAndAndOrTest() {
         test(com.aparapi.codegen.test.IfBooleanAndAndOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanAndAndOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanAndAndOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrAndTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrAndTest.java
index bcaf567b47f2f8ca334beced975dd937d0153aca..5655f680251a72d770abb526ea0536f92fa2427e 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrAndTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanAndOrAndTest 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 IfBooleanAndOrAndTest() {
         test(com.aparapi.codegen.test.IfBooleanAndOrAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanAndOrAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanAndOrAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrOrTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrOrTest.java
index 13e3e63753406428bf8af44e24fb0e5a7b05412f..175311201e36230c8094fc955f1f2da9e65bc61a 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanAndOrOrTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanAndOrOrTest 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 IfBooleanAndOrOrTest() {
         test(com.aparapi.codegen.test.IfBooleanAndOrOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanAndOrOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanAndOrOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndAndTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndAndTest.java
index f7e28ac3862ab2be3fa3414ac473176455c8ef1f..7e625618a2cf9bfc9df143c75458af9feeb2c189 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndAndTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanOrAndAndTest 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 IfBooleanOrAndAndTest() {
         test(com.aparapi.codegen.test.IfBooleanOrAndAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanOrAndAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanOrAndAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndOrTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndOrTest.java
index 71f4187f39058e0d9309dcfe51e606e56d61046c..966e2517ad23bede72c6498d2a34061f6ae36508 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanOrAndOrTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanOrAndOrTest 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 IfBooleanOrAndOrTest() {
         test(com.aparapi.codegen.test.IfBooleanOrAndOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanOrAndOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanOrAndOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrAndTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrAndTest.java
index 32a1a77e409420a2ce83af27902891b861983ead..d22297704542cb50ceef39260ade505b009ca8f7 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrAndTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanOrOrAndTest 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 IfBooleanOrOrAndTest() {
         test(com.aparapi.codegen.test.IfBooleanOrOrAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanOrOrAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanOrOrAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrOrTest.java b/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrOrTest.java
index 32f28ba5818e5a093cfcb4ec5856488cfbe490b0..62bec0cd32aadebc71fce7c05d880be20c9bad83 100644
--- a/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfBooleanOrOrOrTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfBooleanOrOrOrTest 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 IfBooleanOrOrOrTest() {
         test(com.aparapi.codegen.test.IfBooleanOrOrOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfBooleanOrOrOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfBooleanOrOrOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseAndAndAndTest.java b/src/test/java/com/aparapi/codegen/test/IfElseAndAndAndTest.java
index 967ff06a139a25930408b5232def032df727ebd1..9c54bbaf2e825b4d08e53c2c010d159df80968e0 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseAndAndAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseAndAndAndTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseAndAndAndTest 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<=10 && testValue>=0 && (testValue % 4)==0){\n"
+        + " pass = 1;\n"
+        + " } else {\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 IfElseAndAndAndTest() {
         test(com.aparapi.codegen.test.IfElseAndAndAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElseAndAndAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElseAndAndAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseAndTest.java b/src/test/java/com/aparapi/codegen/test/IfElseAndTest.java
index 94a43b40d29ecffff86df27e888d1a48b2b03555..70bb5db824346a93952b660c49e2743062571820 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseAndTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseAndTest 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>=0 && testValue<100){\n"
+        + " pass = 1;\n"
+        + " } else {\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 IfElseAndTest() {
         test(com.aparapi.codegen.test.IfElseAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElseAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElseAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseIfElseIfElseTest.java b/src/test/java/com/aparapi/codegen/test/IfElseIfElseIfElseTest.java
index 65f3ff3babf039fe261a79a523a685d616ffe698..ab4ad63829de49888d9804222c69e673c9bc3da8 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseIfElseIfElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseIfElseIfElseTest.java
@@ -18,16 +18,50 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseIfElseIfElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + "\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"
+        + " } else {\n"
+        + " if (b!=0){\n"
+        + " result = 1;\n"
+        + " } else {\n"
+        + " if (c!=0){\n"
+        + " result = 1;\n"
+        + " } else {\n"
+        + " result = 1;\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 IfElseIfElseIfElseTest() {
         test(com.aparapi.codegen.test.IfElseIfElseIfElse.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElseIfElseIfElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElseIfElseIfElse.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseNot__OrOr_And_Test.java b/src/test/java/com/aparapi/codegen/test/IfElseNot__OrOr_And_Test.java
index e39d43ec05a2047d1fa4993165b9b15190664511..778de595f6b0798be87668bf75d9bc2c69375d17 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseNot__OrOr_And_Test.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseNot__OrOr_And_Test.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseNot__OrOr_And_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"
+        + " int testValue = 10;\n"
+        + " char pass = 0;\n"
+        + " if ((testValue % 2)!=0 && testValue>0 && testValue<100 || (testValue % 4)!=0){\n"
+        + " pass = 1;\n"
+        + " } else {\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 IfElseNot__OrOr_And_Test() {
         test(com.aparapi.codegen.test.IfElseNot__OrOr_And_.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElseNot__OrOr_And_TestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElseNot__OrOr_And_.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseOrOrAndTest.java b/src/test/java/com/aparapi/codegen/test/IfElseOrOrAndTest.java
index 14010141a9901fc4ff76e048e5a1ad41625ebb8e..1c3ccfcb98116147f63591eef24a2c05ddb30d2e 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseOrOrAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseOrOrAndTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseOrOrAndTest 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"
+        + " } else {\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 IfElseOrOrAndTest() {
         test(com.aparapi.codegen.test.IfElseOrOrAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElseOrOrAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElseOrOrAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseOrOrOrTest.java b/src/test/java/com/aparapi/codegen/test/IfElseOrOrOrTest.java
index a5d648e6d88c6f3ac39e3394f91cc552597db865..b0b9b5c09ccfc4bc276f2b5e19e3fc73d035e6f1 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseOrOrOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseOrOrOrTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseOrOrOrTest 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==10){\n"
+        + " pass = 1;\n"
+        + " } else {\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 IfElseOrOrOrTest() {
         test(com.aparapi.codegen.test.IfElseOrOrOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElseOrOrOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElseOrOrOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElseTest.java b/src/test/java/com/aparapi/codegen/test/IfElseTest.java
index 8285d7282221aab235aa3ddb763bcec1e644f7c2..1c19bce73abedffa6bcfce7e3513031a4112d4f9 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElseTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElseTest 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"
+        + " } else {\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 IfElseTest() {
         test(com.aparapi.codegen.test.IfElse.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void IfElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElse.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElse_And_Or_AndTest.java b/src/test/java/com/aparapi/codegen/test/IfElse_And_Or_AndTest.java
index 2365020ee538faafe67d8f819eb71c3d8ac23f3f..60130a6ee9c463fba00e504c6cf488cf0dbd3042 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElse_And_Or_AndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElse_And_Or_AndTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElse_And_Or_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 x = 5;\n"
+        + " int y = 5;\n"
+        + " char pass = 0;\n"
+        + " if (x>=0 && x<10 || y>=0 && y<10){\n"
+        + " pass = 1;\n"
+        + " } else {\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 IfElse_And_Or_AndTest() {
         test(com.aparapi.codegen.test.IfElse_And_Or_And.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElse_And_Or_AndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElse_And_Or_And.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElse_OrOr_AndTest.java b/src/test/java/com/aparapi/codegen/test/IfElse_OrOr_AndTest.java
index 0f4d72c9c4bf8c76d6b0a8bf9388d1c8d8a5ae98..8dbcb21a91c27e12aa2d6dd29e7e0f2b216aa1ba 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElse_OrOr_AndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElse_OrOr_AndTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElse_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"
+        + " } else {\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 IfElse_OrOr_AndTest() {
         test(com.aparapi.codegen.test.IfElse_OrOr_And.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElse_OrOr_AndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElse_OrOr_And.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfElse_Or_And_OrTest.java b/src/test/java/com/aparapi/codegen/test/IfElse_Or_And_OrTest.java
index da08956befa728b6d64c5265885c3e794524e05b..66ab19fa5ecc431f9299c9fe75c2ca4d6a58cda9 100644
--- a/src/test/java/com/aparapi/codegen/test/IfElse_Or_And_OrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfElse_Or_And_OrTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfElse_Or_And_OrTest 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 x = 5;\n"
+        + " int y = 5;\n"
+        + " char pass = 0;\n"
+        + " if ((x<0 || x>=10) && (y<0 || y>=10)){\n"
+        + " pass = 1;\n"
+        + " } else {\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 IfElse_Or_And_OrTest() {
         test(com.aparapi.codegen.test.IfElse_Or_And_Or.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfElse_Or_And_OrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfElse_Or_And_Or.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfOrAndOrTest.java b/src/test/java/com/aparapi/codegen/test/IfOrAndOrTest.java
index 715a9ab26e18a7a99824cdd6a94c891722d84aa7..b2852ab3b0dbb8f46277c851174a3a5e0cf56d3d 100644
--- a/src/test/java/com/aparapi/codegen/test/IfOrAndOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfOrAndOrTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfOrAndOrTest 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 IfOrAndOrTest() {
         test(com.aparapi.codegen.test.IfOrAndOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfOrAndOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfOrAndOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfOrOrAndTest.java b/src/test/java/com/aparapi/codegen/test/IfOrOrAndTest.java
index a8618ca816afdeb2f7162a13e2a1960d36c13ec4..c50ca18f82f5bd30349f665d35d9e185730d14f0 100644
--- a/src/test/java/com/aparapi/codegen/test/IfOrOrAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfOrOrAndTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfOrOrAndTest 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 IfOrOrAndTest() {
         test(com.aparapi.codegen.test.IfOrOrAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfOrOrAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfOrOrAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfOrOrOrTest.java b/src/test/java/com/aparapi/codegen/test/IfOrOrOrTest.java
index 33b20c04c05a8d40e4f5110deddb8a494af6d730..4dc25d0dd1e9e71e13387ea17395ad642598eab7 100644
--- a/src/test/java/com/aparapi/codegen/test/IfOrOrOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfOrOrOrTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfOrOrOrTest 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==10){\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 IfOrOrOrTest() {
         test(com.aparapi.codegen.test.IfOrOrOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfOrOrOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfOrOrOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfOrOrTest.java b/src/test/java/com/aparapi/codegen/test/IfOrOrTest.java
index a03755d0b6f4f6cae5e4bce8cd4494614bcbc062..d9ad783d46cd34afb0833d16a5b70e9ba60ce3d9 100644
--- a/src/test/java/com/aparapi/codegen/test/IfOrOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfOrOrTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfOrOrTest 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>=0 || testValue<100 || testValue==20){\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 IfOrOrTest() {
         test(com.aparapi.codegen.test.IfOrOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void IfOrOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfOrOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfOrTest.java b/src/test/java/com/aparapi/codegen/test/IfOrTest.java
index 477c9406388aee2ec3da6f2b9d3cfaba2ea0332b..a5ba46116bac6bfafe3d978663c5dbfd603fed62 100644
--- a/src/test/java/com/aparapi/codegen/test/IfOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfOrTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfOrTest 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>=0 || testValue<100){\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 IfOrTest() {
         test(com.aparapi.codegen.test.IfOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IfOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemAsParameterTest.java b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemAsParameterTest.java
index cf7707ff6bdec588dbfae1062dd384945c1a5bbe..8131fdf805f29421be56b8e838119f72b9d30c6c 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemAsParameterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemAsParameterTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncArrayItemAsParameterTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *results;\n"
+        + " int y;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " int com_amd_aparapi_test_PostIncArrayItemAsParameter__actuallyDoIt(This *this, int a){\n"
+        + " return(1);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " __global int *results,\n"
+        + " int y,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->results = results;\n"
+        + " this->y = y;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " com_amd_aparapi_test_PostIncArrayItemAsParameter__actuallyDoIt(this, this->results[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 PostIncArrayItemAsParameterTest() {
         test(com.aparapi.codegen.test.PostIncArrayItemAsParameter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemAsParameterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncArrayItemAsParameter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemFieldIndexTest.java b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemFieldIndexTest.java
index 01e149c176eea1d0ed92be74d91266659a841967..8d441f76834dd6dfc20eca3217e383a7b6c9ac6a 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemFieldIndexTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemFieldIndexTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncArrayItemFieldIndexTest 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"
+        + " int a;\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"
+        + " int a,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->a = a;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " this->values[this->a]  = this->results[this->a]++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemFieldIndexTest() {
         test(com.aparapi.codegen.test.PostIncArrayItemFieldIndex.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemFieldIndexTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncArrayItemFieldIndex.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 8554bab6f5ecdd752c03d0f1b5b7fbb19e909666..cf99d2725a75d1eb6f96a6ecd6a397f937d768bd 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
@@ -19,16 +19,15 @@ 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 = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PostIncIntFieldTest() {
         test(com.aparapi.codegen.test.PostIncIntField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncIntFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncIntField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TernaryAndOrTest.java b/src/test/java/com/aparapi/codegen/test/TernaryAndOrTest.java
index 366eeb8101b77c8806d20beae0df1febd7dfba37..e30b09f0b03da85657287b78032202a125643349 100644
--- a/src/test/java/com/aparapi/codegen/test/TernaryAndOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TernaryAndOrTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TernaryAndOrTest 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_TernaryAndOr__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_TernaryAndOr__random(this)==0.0f && com_amd_aparapi_test_TernaryAndOr__random(this)>0.8f || com_amd_aparapi_test_TernaryAndOr__random(this)<0.2f)?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 TernaryAndOrTest() {
         test(com.aparapi.codegen.test.TernaryAndOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TernaryAndOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.TernaryAndOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TernaryAndTest.java b/src/test/java/com/aparapi/codegen/test/TernaryAndTest.java
index 40523f635b185061da948a076c14f6a0e423e12d..136cd056e466412edb894cae5a0ad8b8fe2523ad 100644
--- a/src/test/java/com/aparapi/codegen/test/TernaryAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TernaryAndTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TernaryAndTest 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"
+        + " float com_amd_aparapi_test_TernaryAnd__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_TernaryAnd__random(this)>0.8f && com_amd_aparapi_test_TernaryAnd__random(this)<0.2f)?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 TernaryAndTest() {
         test(com.aparapi.codegen.test.TernaryAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TernaryAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.TernaryAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TernaryNestedTest.java b/src/test/java/com/aparapi/codegen/test/TernaryNestedTest.java
index 4f770a67b40279dcfca3d85a210bc9650465c2a7..2128d5cfd47a7cfa8ec2adec239b08c0b1be5ac5 100644
--- a/src/test/java/com/aparapi/codegen/test/TernaryNestedTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TernaryNestedTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TernaryNestedTest 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"
+        + " char a = 0;\n"
+        + " char b = 0;\n"
+        + " char c = 0;\n"
+        + " int count = (a!=0)?(b!=0)?1:2:(c!=0)?3:4;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void TernaryNestedTest() {
         test(com.aparapi.codegen.test.TernaryNested.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TernaryNestedTestWorksWithCaching() {
         test(com.aparapi.codegen.test.TernaryNested.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TernaryOrTest.java b/src/test/java/com/aparapi/codegen/test/TernaryOrTest.java
index 03b90438ee80bf79e00188c4416d8805abbe859a..e977e88bab61afdcbb6bffb33a2b17447c3697c8 100644
--- a/src/test/java/com/aparapi/codegen/test/TernaryOrTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TernaryOrTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TernaryOrTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "ypedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " float com_amd_aparapi_test_TernaryOr__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_TernaryOr__random(this)>0.8f || com_amd_aparapi_test_TernaryOr__random(this)<0.2f)?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 TernaryOrTest() {
         test(com.aparapi.codegen.test.TernaryOr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TernaryOrTestWorksWithCaching() {
         test(com.aparapi.codegen.test.TernaryOr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TwoForLoopsTest.java b/src/test/java/com/aparapi/codegen/test/TwoForLoopsTest.java
index 124a3c4df486b43ddb34c627911d616d34bf8111..ad2ef527eb7911b2e9d787e8e7db02197284ec52 100644
--- a/src/test/java/com/aparapi/codegen/test/TwoForLoopsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TwoForLoopsTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TwoForLoopsTest 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"
+        + " 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"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->a = a;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " for (int i = 0; i<100; i++){\n"
+        + " this->a[i]  = i;\n"
+        + " }\n"
+        + " int sum = 0;\n"
+        + " for (int i = 0; i<100; i++){\n"
+        + " sum = sum + this->a[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 TwoForLoopsTest() {
         test(com.aparapi.codegen.test.TwoForLoops.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TwoForLoopsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.TwoForLoops.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UnrelatedIfElsesWithCommonEndByteTest.java b/src/test/java/com/aparapi/codegen/test/UnrelatedIfElsesWithCommonEndByteTest.java
index 26b92dce653d3fb5147d6598751269f85e8ac8b9..4c326e9a281470ef01bf86c1ee0010b94c93760b 100644
--- a/src/test/java/com/aparapi/codegen/test/UnrelatedIfElsesWithCommonEndByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UnrelatedIfElsesWithCommonEndByteTest.java
@@ -18,16 +18,50 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class UnrelatedIfElsesWithCommonEndByteTest 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 = 0;\n"
+        + " char c = 1;\n"
+        + " char result = 0;\n"
+        + " if (a!=0){\n"
+        + " if (b!=0){\n"
+        + " result = 1;\n"
+        + " } else {\n"
+        + " result = 0;\n"
+        + " }\n"
+        + " if (c!=0){\n"
+        + " result = 1;\n"
+        + " } else {\n"
+        + " result = 0;\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 UnrelatedIfElsesWithCommonEndByteTest() {
         test(com.aparapi.codegen.test.UnrelatedIfElsesWithCommonEndByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UnrelatedIfElsesWithCommonEndByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UnrelatedIfElsesWithCommonEndByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UnrelatedIfsWithCommonEndByteTest.java b/src/test/java/com/aparapi/codegen/test/UnrelatedIfsWithCommonEndByteTest.java
index e45e26321bf049c08b12fae940c80f7997bae8c6..1c0741cad345b882f3ba4ac8ca39ce32ef871123 100644
--- a/src/test/java/com/aparapi/codegen/test/UnrelatedIfsWithCommonEndByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UnrelatedIfsWithCommonEndByteTest.java
@@ -18,16 +18,48 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class UnrelatedIfsWithCommonEndByteTest 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 a1 = 1;\n"
+        + " char a2 = 1;\n"
+        + " char b = 0;\n"
+        + " char c = 1;\n"
+        + " char outer = 1;\n"
+        + " char result = 0;\n"
+        + " if (outer!=0 && a1!=0 && a2==0){\n"
+        + " if (b!=0){\n"
+        + " result = 1;\n"
+        + " }\n"
+        + " if (c!=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 UnrelatedIfsWithCommonEndByteTest() {
         test(com.aparapi.codegen.test.UnrelatedIfsWithCommonEndByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UnrelatedIfsWithCommonEndByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UnrelatedIfsWithCommonEndByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UnrelatedNestedIfElsesTest.java b/src/test/java/com/aparapi/codegen/test/UnrelatedNestedIfElsesTest.java
index 4e83b392d81334432eb8a47441c240b879db628e..7b8c0233137f28f9502ce728ae79cc967e6c132d 100644
--- a/src/test/java/com/aparapi/codegen/test/UnrelatedNestedIfElsesTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UnrelatedNestedIfElsesTest.java
@@ -18,16 +18,51 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class UnrelatedNestedIfElsesTest 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 = 0;\n"
+        + " char c = 1;\n"
+        + " char result = 0;\n"
+        + " if (a!=0){\n"
+        + " if (b!=0){\n"
+        + " result = 1;\n"
+        + " } else {\n"
+        + " result = 0;\n"
+        + " }\n"
+        + " }else{\n"
+        + " if (c!=0){\n"
+        + " result = 1;\n"
+        + " } else {\n"
+        + " result = 0;\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 UnrelatedNestedIfElsesTest() {
         test(com.aparapi.codegen.test.UnrelatedNestedIfElses.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UnrelatedNestedIfElsesTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UnrelatedNestedIfElses.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UseObjectArrayLengthTest.java b/src/test/java/com/aparapi/codegen/test/UseObjectArrayLengthTest.java
index 807ffbbd02f84421d5d666e399239e4bc8d96582..ab3df2f9c67c00b8d97f7ecacc2f3ecda5054292 100644
--- a/src/test/java/com/aparapi/codegen/test/UseObjectArrayLengthTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UseObjectArrayLengthTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class UseObjectArrayLengthTest 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"
+        + " __global com_amd_aparapi_test_UseObjectArrayLength$Dummy *dummy;\n"
+        + " int dummy__javaArrayLength;\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 *out,\n"
+        + " __global com_amd_aparapi_test_UseObjectArrayLength$Dummy *dummy,\n"
+        + " int dummy__javaArrayLength,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->out = out;\n"
+        + " this->dummy = dummy;\n"
+        + " this->dummy__javaArrayLength = dummy__javaArrayLength;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " this->out[0]  = this->dummy__javaArrayLength;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void UseObjectArrayLengthTest() {
         test(com.aparapi.codegen.test.UseObjectArrayLength.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UseObjectArrayLengthTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UseObjectArrayLength.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UseObjectTest.java b/src/test/java/com/aparapi/codegen/test/UseObjectTest.java
index 5f2d7445387252c3134ab8fafa97b993b8f17cc1..77f14bbdb3e3ad92f9b800b4b6d0850afcdf649a 100644
--- a/src/test/java/com/aparapi/codegen/test/UseObjectTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UseObjectTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class UseObjectTest 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 UseObjectTest() {
         test(com.aparapi.codegen.test.UseObject.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UseObjectTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UseObject.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UsesArrayLengthTest.java b/src/test/java/com/aparapi/codegen/test/UsesArrayLengthTest.java
index 3de63e8d341d14addf0c82adae7b124f3ac0f827..fcd5859b55a3272c34d154e1c1da2b98b9a13b8f 100644
--- a/src/test/java/com/aparapi/codegen/test/UsesArrayLengthTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UsesArrayLengthTest.java
@@ -18,16 +18,58 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class UsesArrayLengthTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global char  *values;\n"
+        + " int values__javaArrayLength;\n"
+        + " __global char  *results;\n"
+        + " int results__javaArrayLength;\n"
+        + " __global char  *results2;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " char com_amd_aparapi_test_UsesArrayLength__actuallyDoIt(This *this, int index){\n"
+        + " int x = 0;\n"
+        + " char y = this->values[(this->values__javaArrayLength - index)];\n"
+        + " x = index + this->results__javaArrayLength;\n"
+        + " return(((this->results__javaArrayLength - x)>0)?1:0);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " __global char  *values,\n"
+        + " int values__javaArrayLength,\n"
+        + " __global char  *results,\n"
+        + " int results__javaArrayLength,\n"
+        + " __global char  *results2,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->values__javaArrayLength = values__javaArrayLength;\n"
+        + " this->results = results;\n"
+        + " this->results__javaArrayLength = results__javaArrayLength;\n"
+        + " this->results2 = results2;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int myId = 0;\n"
+        + " char x = (this->values__javaArrayLength>0)?1:0;\n"
+        + " this->results[myId]  = x & com_amd_aparapi_test_UsesArrayLength__actuallyDoIt(this, this->values__javaArrayLength);\n"
+        + " this->results2[myId]  = (this->results[myId]==0)?1:0;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void UsesArrayLengthTest() {
         test(com.aparapi.codegen.test.UsesArrayLength.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UsesArrayLengthTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UsesArrayLength.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UsesNewTest.java b/src/test/java/com/aparapi/codegen/test/UsesNewTest.java
index 3f5e73652384ab5c7e3adbe3bb6e5459fab2b363..84b3e6090e601da64896f11a00d90f9f1234dc35 100644
--- a/src/test/java/com/aparapi/codegen/test/UsesNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UsesNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class UsesNewTest 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 UsesNewTest() {
         test(com.aparapi.codegen.test.UsesNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UsesNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UsesNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/UsesThrowTest.java b/src/test/java/com/aparapi/codegen/test/UsesThrowTest.java
index 282364c4b13c01d34ee16fb37796baf0acb71021..f23b22bf0f780b5839b06037b86daa50f8cb8f0b 100644
--- a/src/test/java/com/aparapi/codegen/test/UsesThrowTest.java
+++ b/src/test/java/com/aparapi/codegen/test/UsesThrowTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class UsesThrowTest 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 UsesThrowTest() {
         test(com.aparapi.codegen.test.UsesThrow.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void UsesThrowTestWorksWithCaching() {
         test(com.aparapi.codegen.test.UsesThrow.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/VarargsForEachTest.java b/src/test/java/com/aparapi/codegen/test/VarargsForEachTest.java
index 9fe2e76376a9c87725ed921cd34446596e242970..3a31f645f9f24a2556ba7ffd3118338565d68c1e 100644
--- a/src/test/java/com/aparapi/codegen/test/VarargsForEachTest.java
+++ b/src/test/java/com/aparapi/codegen/test/VarargsForEachTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class VarargsForEachTest 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 VarargsForEachTest() {
         test(com.aparapi.codegen.test.VarargsForEach.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void VarargsForEachTestWorksWithCaching() {
         test(com.aparapi.codegen.test.VarargsForEach.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/VarargsSimpleTest.java b/src/test/java/com/aparapi/codegen/test/VarargsSimpleTest.java
index b47f8026e8980ccca21ca56ca8244743154d1067..d93b9e4af4b96fb62a7d55165b03d79a49b1af70 100644
--- a/src/test/java/com/aparapi/codegen/test/VarargsSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/VarargsSimpleTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class VarargsSimpleTest 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 VarargsSimpleTest() {
         test(com.aparapi.codegen.test.VarargsSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void VarargsSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.VarargsSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileAndMandelTest.java b/src/test/java/com/aparapi/codegen/test/WhileAndMandelTest.java
index 08798b52cdaf65b1b298a365449c7dc3750ce259..0597edc9710e8c7dda2c58802e2047f1add97987 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileAndMandelTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileAndMandelTest.java
@@ -18,16 +18,63 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WhileAndMandelTest 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"
+        + "\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 WhileAndMandelTest() {
         test(com.aparapi.codegen.test.WhileAndMandel.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileAndMandelTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WhileAndMandel.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileEmptyLoopTest.java b/src/test/java/com/aparapi/codegen/test/WhileEmptyLoopTest.java
index 0c843f110d5291982f4845894c795a0ed00379b7..4b24601e1fc8e238bb412272a19fa9f7c5991ade 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileEmptyLoopTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileEmptyLoopTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WhileEmptyLoopTest 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 x = 10; x--!=0;){}\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void WhileEmptyLoopTest() {
         test(com.aparapi.codegen.test.WhileEmptyLoop.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileEmptyLoopTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WhileEmptyLoop.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileFloatCompoundTest.java b/src/test/java/com/aparapi/codegen/test/WhileFloatCompoundTest.java
index ae34cec8c4bdfbb80b3dac67aca76d865aafa6be..d11fa0b6ca27ee88c6a299e63c5eb5a5e3672974 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileFloatCompoundTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileFloatCompoundTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WhileFloatCompoundTest 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_WhileFloatCompound__randomFunc(This *this){\n"
+        + " return(1.0f);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " float v1 = 1.0f;\n"
+        + " float v2 = 0.0f;\n"
+        + " float s = 1.0f;\n"
+        + " for (; s<1.0f && s>0.0f; s = (v1 * v1) + (v2 * v2)){\n"
+        + " v1 = com_amd_aparapi_test_WhileFloatCompound__randomFunc(this);\n"
+        + " v2 = com_amd_aparapi_test_WhileFloatCompound__randomFunc(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 WhileFloatCompoundTest() {
         test(com.aparapi.codegen.test.WhileFloatCompound.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileFloatCompoundTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WhileFloatCompound.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileIfElseTest.java b/src/test/java/com/aparapi/codegen/test/WhileIfElseTest.java
index d22bc72ce9f8afbebd98cb3876edc004feddad54..d99c8b96b7e20550ac50e7eabb879c932f739e36 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileIfElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileIfElseTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WhileIfElseTest 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 a = 0;\n"
+        + " int b = 0;\n"
+        + " int c = 0;\n"
+        + " int d = 0;\n"
+        + " for (; a==a; ){\n"
+        + " if (b==b){\n"
+        + " c = c;\n"
+        + " } else {\n"
+        + " d = d;\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 WhileIfElseTest() {
         test(com.aparapi.codegen.test.WhileIfElse.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileIfElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WhileIfElse.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileIfTest.java b/src/test/java/com/aparapi/codegen/test/WhileIfTest.java
index e1d175b9aeb1fae75a371a2a3e71fb4929ad325b..c837c0ab3872cdd59b2ee2d3d1c3128a71ac0777 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileIfTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileIfTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WhileIfTest 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 a = 0;\n"
+        + " int b = 0;\n"
+        + " int c = 0;\n"
+        + " int d = 0;\n"
+        + " for (; a==a; ){\n"
+        + " if (b==b){\n"
+        + " c = c;\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 WhileIfTest() {
         test(com.aparapi.codegen.test.WhileIf.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileIfTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WhileIf.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileTest.java b/src/test/java/com/aparapi/codegen/test/WhileTest.java
index 71b253191d57cc305952990bd04fd912c3a9041a..b11050964d6ed1f50ea6efbb94dcd41349c96c79 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class 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 pass = 0;\n"
+        + " int i = 0;\n"
+        + " for (; 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 WhileTest() {
         test(com.aparapi.codegen.test.While.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileTestWorksWithCaching() {
         test(com.aparapi.codegen.test.While.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WhileWithoutMutatorTest.java b/src/test/java/com/aparapi/codegen/test/WhileWithoutMutatorTest.java
index 440435f2f2c3d6598a98da8d6be28699c470a07b..8c259a9221b37e18d6e8d4c50ce6f79549b0cd7c 100644
--- a/src/test/java/com/aparapi/codegen/test/WhileWithoutMutatorTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WhileWithoutMutatorTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WhileWithoutMutatorTest 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 x = 0;\n"
+        + " for (; x!=0;){}\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void WhileWithoutMutatorTest() {
         test(com.aparapi.codegen.test.WhileWithoutMutator.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WhileWithoutMutatorTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WhileWithoutMutator.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/While_If_IfElseElseTest.java b/src/test/java/com/aparapi/codegen/test/While_If_IfElseElseTest.java
index 120cceea05b1c69d6378adf9b273507a2f8de70c..5c566b855d167f240a0a114916f5b4e9f1caac40 100644
--- a/src/test/java/com/aparapi/codegen/test/While_If_IfElseElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/While_If_IfElseElseTest.java
@@ -18,16 +18,77 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class While_If_IfElseElseTest 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 a = 0;\n"
+        + " int b = 0;\n"
+        + " int c = 0;\n"
+        + " int d = 0;\n"
+        + " int e = 0;\n"
+        + " int f = 0;\n"
+        + " int g = 0;\n"
+        + " int h = 0;\n"
+        + " int i = 0;\n"
+        + " int j = 0;\n"
+        + " int k = 0;\n"
+        + " int l = 0;\n"
+        + " int m = 0;\n"
+        + " int n = 0;\n"
+        + " int o = 0;\n"
+        + " int p = 0;\n"
+        + " int q = 0;\n"
+        + " int r = 0;\n"
+        + " for (; a==a; ){\n"
+        + " b = b;\n"
+        + " if (c==c){\n"
+        + " d = d;\n"
+        + " if (e==e && f==f){\n"
+        + " g = g;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " if (h==h && i==i){\n"
+        + " if (j==j){\n"
+        + " k = k;\n"
+        + " }\n"
+        + " if (l==l){\n"
+        + " if (m==m){\n"
+        + " n = n;\n"
+        + " } else {\n"
+        + " if (o==o){\n"
+        + " p = p;\n"
+        + " } else {\n"
+        + " q = q;\n"
+        + " }\n"
+        + " }\n"
+        + " r = r;\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 While_If_IfElseElseTest() {
         test(com.aparapi.codegen.test.While_If_IfElseElse.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void While_If_IfElseElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.While_If_IfElseElse.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WideIncTest.java b/src/test/java/com/aparapi/codegen/test/WideIncTest.java
index 1bf3accb63689bf7d9224e1bc7b3842261fdf06d..e9828e76058fb246ef1a1424b2ef315d1b714648 100644
--- a/src/test/java/com/aparapi/codegen/test/WideIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WideIncTest.java
@@ -18,16 +18,34 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WideIncTest 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 value = 0;\n"
+        + " value+=128;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void WideIncTest() {
         test(com.aparapi.codegen.test.WideInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WideIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WideInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/WideLoadTest.java b/src/test/java/com/aparapi/codegen/test/WideLoadTest.java
index 40f801b981d05d0499555a86cfa628223c06d735..c839493f742256db0f58b6f2c30aab08270f5334 100644
--- a/src/test/java/com/aparapi/codegen/test/WideLoadTest.java
+++ b/src/test/java/com/aparapi/codegen/test/WideLoadTest.java
@@ -18,16 +18,290 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class WideLoadTest 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 value00 = 0;\n"
+        + " int value01 = 0;\n"
+        + " int value02 = 0;\n"
+        + " int value03 = 0;\n"
+        + " int value04 = 0;\n"
+        + " int value05 = 0;\n"
+        + " int value06 = 0;\n"
+        + " int value07 = 0;\n"
+        + " int value08 = 0;\n"
+        + " int value09 = 0;\n"
+        + " int value0A = 0;\n"
+        + " int value0B = 0;\n"
+        + " int value0C = 0;\n"
+        + " int value0D = 0;\n"
+        + " int value0E = 0;\n"
+        + " int value0F = 0;\n"
+        + " int value10 = 0;\n"
+        + " int value11 = 0;\n"
+        + " int value12 = 0;\n"
+        + " int value13 = 0;\n"
+        + " int value14 = 0;\n"
+        + " int value15 = 0;\n"
+        + " int value16 = 0;\n"
+        + " int value17 = 0;\n"
+        + " int value18 = 0;\n"
+        + " int value19 = 0;\n"
+        + " int value1A = 0;\n"
+        + " int value1B = 0;\n"
+        + " int value1C = 0;\n"
+        + " int value1D = 0;\n"
+        + " int value1E = 0;\n"
+        + " int value1F = 0;\n"
+        + " int value20 = 0;\n"
+        + " int value21 = 0;\n"
+        + " int value22 = 0;\n"
+        + " int value23 = 0;\n"
+        + " int value24 = 0;\n"
+        + " int value25 = 0;\n"
+        + " int value26 = 0;\n"
+        + " int value27 = 0;\n"
+        + " int value28 = 0;\n"
+        + " int value29 = 0;\n"
+        + " int value2A = 0;\n"
+        + " int value2B = 0;\n"
+        + " int value2C = 0;\n"
+        + " int value2D = 0;\n"
+        + " int value2E = 0;\n"
+        + " int value2F = 0;\n"
+        + " int value30 = 0;\n"
+        + " int value31 = 0;\n"
+        + " int value32 = 0;\n"
+        + " int value33 = 0;\n"
+        + " int value34 = 0;\n"
+        + " int value35 = 0;\n"
+        + " int value36 = 0;\n"
+        + " int value37 = 0;\n"
+        + " int value38 = 0;\n"
+        + " int value39 = 0;\n"
+        + " int value3A = 0;\n"
+        + " int value3B = 0;\n"
+        + " int value3C = 0;\n"
+        + " int value3D = 0;\n"
+        + " int value3E = 0;\n"
+        + " int value3F = 0;\n"
+        + " int value40 = 0;\n"
+        + " int value41 = 0;\n"
+        + " int value42 = 0;\n"
+        + " int value43 = 0;\n"
+        + " int value44 = 0;\n"
+        + " int value45 = 0;\n"
+        + " int value46 = 0;\n"
+        + " int value47 = 0;\n"
+        + " int value48 = 0;\n"
+        + " int value49 = 0;\n"
+        + " int value4A = 0;\n"
+        + " int value4B = 0;\n"
+        + " int value4C = 0;\n"
+        + " int value4D = 0;\n"
+        + " int value4E = 0;\n"
+        + " int value4F = 0;\n"
+        + " int value50 = 0;\n"
+        + " int value51 = 0;\n"
+        + " int value52 = 0;\n"
+        + " int value53 = 0;\n"
+        + " int value54 = 0;\n"
+        + " int value55 = 0;\n"
+        + " int value56 = 0;\n"
+        + " int value57 = 0;\n"
+        + " int value58 = 0;\n"
+        + " int value59 = 0;\n"
+        + " int value5A = 0;\n"
+        + " int value5B = 0;\n"
+        + " int value5C = 0;\n"
+        + " int value5D = 0;\n"
+        + " int value5E = 0;\n"
+        + " int value5F = 0;\n"
+        + " int value60 = 0;\n"
+        + " int value61 = 0;\n"
+        + " int value62 = 0;\n"
+        + " int value63 = 0;\n"
+        + " int value64 = 0;\n"
+        + " int value65 = 0;\n"
+        + " int value66 = 0;\n"
+        + " int value67 = 0;\n"
+        + " int value68 = 0;\n"
+        + " int value69 = 0;\n"
+        + " int value6A = 0;\n"
+        + " int value6B = 0;\n"
+        + " int value6C = 0;\n"
+        + " int value6D = 0;\n"
+        + " int value6E = 0;\n"
+        + " int value6F = 0;\n"
+        + " int value70 = 0;\n"
+        + " int value71 = 0;\n"
+        + " int value72 = 0;\n"
+        + " int value73 = 0;\n"
+        + " int value74 = 0;\n"
+        + " int value75 = 0;\n"
+        + " int value76 = 0;\n"
+        + " int value77 = 0;\n"
+        + " int value78 = 0;\n"
+        + " int value79 = 0;\n"
+        + " int value7A = 0;\n"
+        + " int value7B = 0;\n"
+        + " int value7C = 0;\n"
+        + " int value7D = 0;\n"
+        + " int value7E = 0;\n"
+        + " int value7F = 0;\n"
+        + " int value80 = 0;\n"
+        + " int value81 = 0;\n"
+        + " int value82 = 0;\n"
+        + " int value83 = 0;\n"
+        + " int value84 = 0;\n"
+        + " int value85 = 0;\n"
+        + " int value86 = 0;\n"
+        + " int value87 = 0;\n"
+        + " int value88 = 0;\n"
+        + " int value89 = 0;\n"
+        + " int value8A = 0;\n"
+        + " int value8B = 0;\n"
+        + " int value8C = 0;\n"
+        + " int value8D = 0;\n"
+        + " int value8E = 0;\n"
+        + " int value8F = 0;\n"
+        + " int value90 = 0;\n"
+        + " int value91 = 0;\n"
+        + " int value92 = 0;\n"
+        + " int value93 = 0;\n"
+        + " int value94 = 0;\n"
+        + " int value95 = 0;\n"
+        + " int value96 = 0;\n"
+        + " int value97 = 0;\n"
+        + " int value98 = 0;\n"
+        + " int value99 = 0;\n"
+        + " int value9A = 0;\n"
+        + " int value9B = 0;\n"
+        + " int value9C = 0;\n"
+        + " int value9D = 0;\n"
+        + " int value9E = 0;\n"
+        + " int value9F = 0;\n"
+        + " int valueA0 = 0;\n"
+        + " int valueA1 = 0;\n"
+        + " int valueA2 = 0;\n"
+        + " int valueA3 = 0;\n"
+        + " int valueA4 = 0;\n"
+        + " int valueA5 = 0;\n"
+        + " int valueA6 = 0;\n"
+        + " int valueA7 = 0;\n"
+        + " int valueA8 = 0;\n"
+        + " int valueA9 = 0;\n"
+        + " int valueAA = 0;\n"
+        + " int valueAB = 0;\n"
+        + " int valueAC = 0;\n"
+        + " int valueAD = 0;\n"
+        + " int valueAE = 0;\n"
+        + " int valueAF = 0;\n"
+        + " int valueB0 = 0;\n"
+        + " int valueB1 = 0;\n"
+        + " int valueB2 = 0;\n"
+        + " int valueB3 = 0;\n"
+        + " int valueB4 = 0;\n"
+        + " int valueB5 = 0;\n"
+        + " int valueB6 = 0;\n"
+        + " int valueB7 = 0;\n"
+        + " int valueB8 = 0;\n"
+        + " int valueB9 = 0;\n"
+        + " int valueBA = 0;\n"
+        + " int valueBB = 0;\n"
+        + " int valueBC = 0;\n"
+        + " int valueBD = 0;\n"
+        + " int valueBE = 0;\n"
+        + " int valueBF = 0;\n"
+        + " int valueC0 = 0;\n"
+        + " int valueC1 = 0;\n"
+        + " int valueC2 = 0;\n"
+        + " int valueC3 = 0;\n"
+        + " int valueC4 = 0;\n"
+        + " int valueC5 = 0;\n"
+        + " int valueC6 = 0;\n"
+        + " int valueC7 = 0;\n"
+        + " int valueC8 = 0;\n"
+        + " int valueC9 = 0;\n"
+        + " int valueCA = 0;\n"
+        + " int valueCB = 0;\n"
+        + " int valueCC = 0;\n"
+        + " int valueCD = 0;\n"
+        + " int valueCE = 0;\n"
+        + " int valueCF = 0;\n"
+        + " int valueD0 = 0;\n"
+        + " int valueD1 = 0;\n"
+        + " int valueD2 = 0;\n"
+        + " int valueD3 = 0;\n"
+        + " int valueD4 = 0;\n"
+        + " int valueD5 = 0;\n"
+        + " int valueD6 = 0;\n"
+        + " int valueD7 = 0;\n"
+        + " int valueD8 = 0;\n"
+        + " int valueD9 = 0;\n"
+        + " int valueDA = 0;\n"
+        + " int valueDB = 0;\n"
+        + " int valueDC = 0;\n"
+        + " int valueDD = 0;\n"
+        + " int valueDE = 0;\n"
+        + " int valueDF = 0;\n"
+        + " int valueE0 = 0;\n"
+        + " int valueE1 = 0;\n"
+        + " int valueE2 = 0;\n"
+        + " int valueE3 = 0;\n"
+        + " int valueE4 = 0;\n"
+        + " int valueE5 = 0;\n"
+        + " int valueE6 = 0;\n"
+        + " int valueE7 = 0;\n"
+        + " int valueE8 = 0;\n"
+        + " int valueE9 = 0;\n"
+        + " int valueEA = 0;\n"
+        + " int valueEB = 0;\n"
+        + " int valueEC = 0;\n"
+        + " int valueED = 0;\n"
+        + " int valueEE = 0;\n"
+        + " int valueEF = 0;\n"
+        + " int valueF0 = 0;\n"
+        + " int valueF1 = 0;\n"
+        + " int valueF2 = 0;\n"
+        + " int valueF3 = 0;\n"
+        + " int valueF4 = 0;\n"
+        + " int valueF5 = 0;\n"
+        + " int valueF6 = 0;\n"
+        + " int valueF7 = 0;\n"
+        + " int valueF8 = 0;\n"
+        + " int valueF9 = 0;\n"
+        + " int valueFA = 0;\n"
+        + " int valueFB = 0;\n"
+        + " int valueFC = 0;\n"
+        + " int valueFD = 0;\n"
+        + " int valueFE = 0;\n"
+        + " int valueFF = 0;\n"
+        + " int valueWide = 0;\n"
+        + " valueWide++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void WideLoadTest() {
         test(com.aparapi.codegen.test.WideLoad.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void WideLoadTestWorksWithCaching() {
         test(com.aparapi.codegen.test.WideLoad.class, expectedException, expectedOpenCL);