From c03baf2e76c440272a21465cda6eb23b33006f0f Mon Sep 17 00:00:00 2001
From: rqpa <vesko935@gmail.com>
Date: Fri, 6 Oct 2017 18:59:44 +0300
Subject: [PATCH] Unignored rest of tests

---
 .../codegen/test/ArbitraryScopeTest.java      |  59 +++-
 .../codegen/test/Assign2DIntArrayTest.java    |   6 +-
 .../AssignAndPassAsParameterSimpleTest.java   |   6 +-
 .../test/AssignAndPassAsParameterTest.java    |  34 ++-
 .../aparapi/codegen/test/ByteParamsTest.java  |  30 +-
 .../aparapi/codegen/test/IfAndAndAndTest.java |  29 +-
 .../aparapi/codegen/test/IfAndAndTest.java    |  29 +-
 .../aparapi/codegen/test/IfAndOrAndTest.java  |  31 +-
 .../com/aparapi/codegen/test/IfAndTest.java   |  29 +-
 .../codegen/test/IfBooleanAndAndAndTest.java  |  32 +-
 .../codegen/test/IfBooleanAndAndOrTest.java   |  32 +-
 .../codegen/test/IfBooleanAndOrAndTest.java   |  32 +-
 .../codegen/test/IfBooleanAndOrOrTest.java    |  32 +-
 .../codegen/test/IfBooleanOrAndAndTest.java   |  32 +-
 .../codegen/test/IfBooleanOrAndOrTest.java    |  32 +-
 .../codegen/test/IfBooleanOrOrAndTest.java    |  32 +-
 .../codegen/test/IfBooleanOrOrOrTest.java     |  32 +-
 .../codegen/test/IfElseAndAndAndTest.java     |  31 +-
 .../aparapi/codegen/test/IfElseAndTest.java   |  31 +-
 .../codegen/test/IfElseIfElseIfElseTest.java  |  40 ++-
 .../test/IfElseNot__OrOr_And_Test.java        |  31 +-
 .../codegen/test/IfElseOrOrAndTest.java       |  31 +-
 .../codegen/test/IfElseOrOrOrTest.java        |  31 +-
 .../com/aparapi/codegen/test/IfElseTest.java  |  33 ++-
 .../codegen/test/IfElse_And_Or_AndTest.java   |  32 +-
 .../codegen/test/IfElse_OrOr_AndTest.java     |  31 +-
 .../codegen/test/IfElse_Or_And_OrTest.java    |  32 +-
 .../aparapi/codegen/test/IfOrAndOrTest.java   |  29 +-
 .../aparapi/codegen/test/IfOrOrAndTest.java   |  29 +-
 .../aparapi/codegen/test/IfOrOrOrTest.java    |  29 +-
 .../com/aparapi/codegen/test/IfOrOrTest.java  |  31 +-
 .../com/aparapi/codegen/test/IfOrTest.java    |  29 +-
 .../test/PostIncArrayItemAsParameterTest.java |  33 ++-
 .../test/PostIncArrayItemFieldIndexTest.java  |  33 ++-
 .../codegen/test/PostIncIntFieldTest.java     |   3 +-
 .../codegen/test/TernaryAndOrTest.java        |  26 +-
 .../aparapi/codegen/test/TernaryAndTest.java  |  27 +-
 .../codegen/test/TernaryNestedTest.java       |  27 +-
 .../aparapi/codegen/test/TernaryOrTest.java   |  28 +-
 .../aparapi/codegen/test/TwoForLoopsTest.java |  33 ++-
 ...UnrelatedIfElsesWithCommonEndByteTest.java |  40 ++-
 .../UnrelatedIfsWithCommonEndByteTest.java    |  38 ++-
 .../test/UnrelatedNestedIfElsesTest.java      |  41 ++-
 .../test/UseObjectArrayLengthTest.java        |  33 ++-
 .../aparapi/codegen/test/UseObjectTest.java   |   6 +-
 .../codegen/test/UsesArrayLengthTest.java     |  48 ++-
 .../com/aparapi/codegen/test/UsesNewTest.java |   6 +-
 .../aparapi/codegen/test/UsesThrowTest.java   |   6 +-
 .../codegen/test/VarargsForEachTest.java      |   6 +-
 .../codegen/test/VarargsSimpleTest.java       |   6 +-
 .../codegen/test/WhileAndMandelTest.java      |  53 +++-
 .../codegen/test/WhileEmptyLoopTest.java      |  25 +-
 .../codegen/test/WhileFloatCompoundTest.java  |  32 +-
 .../aparapi/codegen/test/WhileIfElseTest.java |  33 ++-
 .../com/aparapi/codegen/test/WhileIfTest.java |  31 +-
 .../com/aparapi/codegen/test/WhileTest.java   |  29 +-
 .../codegen/test/WhileWithoutMutatorTest.java |  25 +-
 .../codegen/test/While_If_IfElseElseTest.java |  67 ++++-
 .../com/aparapi/codegen/test/WideIncTest.java |  24 +-
 .../aparapi/codegen/test/WideLoadTest.java    | 280 +++++++++++++++++-
 60 files changed, 1839 insertions(+), 179 deletions(-)

diff --git a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeTest.java b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeTest.java
index b18e9725..0cb34f7d 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 cbdc2c8b..d6754481 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 c30743c1..c7ac96d4 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 8c15f787..1196ac67 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 4f8f6063..670ef08e 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 aef528e3..4a567536 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 cd15b208..ddac28ce 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 45c17836..8e91650a 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 bed08fc7..d469c0fa 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 c6cc2b25..aa642c0e 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 b3d68a81..c637d4ff 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 bcaf567b..5655f680 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 13e3e637..17531120 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 f7e28ac3..7e625618 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 71f4187f..966e2517 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 32a1a77e..d2229770 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 32f28ba5..62bec0cd 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 967ff06a..9c54bbaf 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 94a43b40..70bb5db8 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 65f3ff3b..ab4ad638 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 e39d43ec..778de595 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 14010141..1c3ccfcb 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 a5d648e6..b0b9b5c0 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 8285d728..1c19bce7 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 2365020e..60130a6e 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 0f4d72c9..8dbcb21a 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 da08956b..66ab19fa 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 715a9ab2..b2852ab3 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 a8618ca8..c50ca18f 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 33b20c04..4dc25d0d 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 a03755d0..d9ad783d 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 477c9406..a5ba4611 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 cf7707ff..8131fdf8 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 01e149c1..8d441f76 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 8554bab6..cf99d272 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 366eeb81..e30b09f0 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 40523f63..136cd056 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 4f770a67..2128d5cf 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 03b90438..e977e88b 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 124a3c4d..ad2ef527 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 26b92dce..4c326e9a 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 e45e2632..1c0741ca 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 4e83b392..7b8c0233 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 807ffbbd..ab3df2f9 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 5f2d7445..77f14bbd 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 3de63e8d..fcd5859b 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 3f5e7365..84b3e609 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 282364c4..f23b22bf 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 9fe2e763..3a31f645 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 b47f8026..d93b9e4a 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 08798b52..0597edc9 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 0c843f11..4b24601e 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 ae34cec8..d11fa0b6 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 d22bc72c..d99c8b96 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 e1d175b9..c837c0ab 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 71b25319..b1105096 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 440435f2..8c259a92 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 120cceea..5c566b85 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 1bf3accb..e9828e76 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 40f801b9..c839493f 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);
-- 
GitLab