From 5359022bb81317a6142903b7f365540a090015d2 Mon Sep 17 00:00:00 2001
From: rqpa <vesko935@gmail.com>
Date: Fri, 6 Oct 2017 00:07:00 +0300
Subject: [PATCH] Removed ignores on some tests

---
 .../codegen/test/AndOrAndPrecedenceTest.java  |  27 ++++-
 .../codegen/test/AndOrPrecedence2Test.java    |  27 ++++-
 .../codegen/test/AndOrPrecedenceTest.java     |  27 ++++-
 .../codegen/test/ArbitraryScope2Test.java     |  56 +++++++++-
 .../test/ArbitraryScopeSimpleTest.java        |  32 +++++-
 .../codegen/test/ArrayTortureIssue35Test.java |  28 ++++-
 .../aparapi/codegen/test/AssignFieldTest.java |   5 +-
 .../codegen/test/Atomic32PragmaTest.java      |  33 +++++-
 .../codegen/test/BooleanToggleTest.java       |  22 +++-
 .../com/aparapi/codegen/test/BreakTest.java   |   5 +-
 .../codegen/test/ByteParamsSimpleTest.java    |  27 ++++-
 .../codegen/test/CallGetPassIdTest.java       |  20 +++-
 .../codegen/test/CallObjectStaticTest.java    |  27 ++++-
 .../aparapi/codegen/test/CallObjectTest.java  |   5 +-
 .../codegen/test/CallRunSuperTest.java        |  30 ++++-
 .../test/CallStaticInAnotherClassTest.java    |  32 +++++-
 .../aparapi/codegen/test/CallSuperTest.java   |  32 +++++-
 .../aparapi/codegen/test/CallTwiceTest.java   |  28 ++++-
 .../codegen/test/CharArrayFieldTest.java      |  25 ++++-
 .../codegen/test/CharAsParameterTest.java     |  27 ++++-
 .../aparapi/codegen/test/CharTypeTest.java    |  26 ++++-
 .../test/ClassHasStaticFieldAccessTest.java   |  33 +++++-
 .../test/ClassHasStaticMethodSimpleTest.java  |  25 ++++-
 .../test/ClassHasStaticMethodTest.java        |  35 +++++-
 .../test/CompositeArbitraryScopeTest.java     |  99 ++++++++++++++++-
 .../test/ConstantAssignInExpressionTest.java  |  28 ++++-
 .../aparapi/codegen/test/ContinueTest.java    |  30 ++++-
 .../codegen/test/ContinueTortureTest.java     |   5 +-
 .../codegen/test/DirectRecursionTest.java     |   5 +-
 .../com/aparapi/codegen/test/DoWhileTest.java |  29 ++++-
 .../com/aparapi/codegen/test/DremTest.java    |  34 +++++-
 .../aparapi/codegen/test/EarlyReturnTest.java |  27 ++++-
 .../codegen/test/EmptyWhileWithIncTest.java   |  22 +++-
 .../codegen/test/EntrypointRecursionTest.java |   5 +-
 .../java/com/aparapi/codegen/test/ExTest.java |  28 ++++-
 .../test/FirstAssignInExpression2Test.java    |  32 +++++-
 .../test/FirstAssignInExpressionTest.java     |  28 ++++-
 .../codegen/test/FloatParamsSimpleTest.java   |  27 ++++-
 .../aparapi/codegen/test/FloatParamsTest.java |  29 ++++-
 .../test/ForAndMandelNoInitializeTest.java    |  51 ++++++++-
 .../codegen/test/ForAndMandelTest.java        |  50 ++++++++-
 .../com/aparapi/codegen/test/ForAndTest.java  |  27 ++++-
 .../aparapi/codegen/test/ForAsFirstTest.java  |  25 ++++-
 .../codegen/test/ForBooleanToggleTest.java    |  27 ++++-
 .../aparapi/codegen/test/ForBreakTest.java    |   5 +-
 .../com/aparapi/codegen/test/ForEachTest.java |   5 +-
 .../aparapi/codegen/test/ForIfMandelTest.java |  54 ++++++++-
 .../com/aparapi/codegen/test/ForIfTest.java   |  29 ++++-
 .../com/aparapi/codegen/test/ForTest.java     |  25 ++++-
 .../com/aparapi/codegen/test/FremTest.java    |  31 +++++-
 .../codegen/test/IEEERemainderDoubleTest.java |  34 +++++-
 .../codegen/test/IEEERemainderFloatTest.java  |  32 +++++-
 .../java/com/aparapi/codegen/test/IfTest.java |  28 ++++-
 .../test/If_IfElseIfElseElse_ElseTest.java    |  40 ++++++-
 .../codegen/test/If_IfElse_ElseTest.java      |  35 +++++-
 .../test/If_IfElse_Else_IfElse_Test.java      |  43 +++++++-
 .../aparapi/codegen/test/If_If_Else2Test.java |  31 +++++-
 .../aparapi/codegen/test/If_If_ElseTest.java  |  33 +++++-
 .../codegen/test/If_If_Else_If_Test.java      |  35 +++++-
 .../aparapi/codegen/test/If_OrOr_AndTest.java |  28 ++++-
 .../codegen/test/If_While_ElseTest.java       |  30 ++++-
 .../codegen/test/If_While_Else_WhileTest.java |  31 +++++-
 .../codegen/test/ImplementsInterfaceTest.java |  33 +++++-
 .../codegen/test/IncArrayArgContentTest.java  |  30 ++++-
 .../aparapi/codegen/test/IncFieldTest.java    |   5 +-
 .../codegen/test/IndirectRecursionTest.java   |   5 +-
 .../aparapi/codegen/test/InterfaceTest.java   |   5 +-
 .../aparapi/codegen/test/LongCompareTest.java |  30 ++++-
 .../codegen/test/LongComparesTest.java        |  27 ++++-
 .../com/aparapi/codegen/test/LoopsTest.java   |  28 ++++-
 .../com/aparapi/codegen/test/MathAbsTest.java |  33 +++++-
 .../aparapi/codegen/test/MathDegRadTest.java  |  31 +++++-
 .../codegen/test/MathFallThruTest.java        |  36 +++++-
 .../com/aparapi/codegen/test/MathMaxTest.java |  38 ++++++-
 .../com/aparapi/codegen/test/MathMinTest.java |  38 ++++++-
 .../codegen/test/MathRemainderTest.java       |  33 +++++-
 .../codegen/test/MultiContinueTest.java       |  39 ++++++-
 .../codegen/test/MultipleAssignExprTest.java  |  30 ++++-
 .../codegen/test/MultipleAssignTest.java      |  27 ++++-
 .../com/aparapi/codegen/test/NaNTest.java     |  26 ++++-
 .../codegen/test/NewLocalArrayTest.java       |  28 ++++-
 .../codegen/test/NonNullCheckTest.java        |  28 ++++-
 .../aparapi/codegen/test/NullCheckTest.java   |  29 ++++-
 .../test/ObjectArrayCallHierarchyTest.java    |   5 +-
 .../test/ObjectArrayCommonSuperTest.java      |   5 +-
 .../test/ObjectArrayMemberAccessTest.java     |  34 +++++-
 .../test/ObjectArrayMemberBadGetterTest.java  |   5 +-
 .../test/ObjectArrayMemberBadSetterTest.java  |   5 +-
 .../test/ObjectArrayMemberCallTest.java       |  46 +++++++-
 .../ObjectArrayMemberGetterSetterTest.java    | 104 +++++++++++++++++-
 .../test/ObjectArrayMemberHierarchyTest.java  |  47 +++++++-
 .../test/ObjectArrayMemberNotFinalTest.java   |   5 +-
 .../codegen/test/ObjectRefCopyTest.java       |   5 +-
 .../codegen/test/ObjectWithinObjectTest.java  |   7 +-
 .../codegen/test/OrAndOrPrecedenceTest.java   |  33 +++++-
 .../codegen/test/OverloadMethodTest.java      |  33 +++++-
 .../test/OverriddenKernelFieldTest.java       |  34 +++++-
 .../com/aparapi/codegen/test/PlayPenTest.java |  41 ++++++-
 .../codegen/test/PostDecArrayItemTest.java    |  31 +++++-
 .../aparapi/codegen/test/PostDecByteTest.java |  28 ++++-
 .../codegen/test/PostDecLocalTest.java        |  29 ++++-
 .../codegen/test/PostDecPostIncTest.java      |  27 ++++-
 .../test/PostIncArrayIndexAndElementTest.java |  28 ++++-
 .../codegen/test/PostIncArrayItemTest.java    |  31 +++++-
 .../codegen/test/PostIncByteFieldTest.java    |   6 +-
 .../aparapi/codegen/test/PostIncByteTest.java |  29 ++++-
 .../codegen/test/PostIncIntFieldTest.java     |   3 +-
 .../aparapi/codegen/test/PostIncIntTest.java  |  29 ++++-
 .../test/PostIncLocalStandaloneTest.java      |  26 ++++-
 .../codegen/test/PostIncLocalTest.java        |  29 ++++-
 .../codegen/test/PostIncLocalTwiceTest.java   |  31 +++++-
 .../test/PreDecArrayIndexAndElementTest.java  |  28 ++++-
 .../codegen/test/PreDecArrayItemTest.java     |  32 +++++-
 .../codegen/test/PreDecPostIncTest.java       |  28 ++++-
 .../test/PreIncArrayIndexAndElementTest.java  |  28 ++++-
 .../codegen/test/PreIncArrayItemTest.java     |  32 +++++-
 .../codegen/test/PreIncByteFieldTest.java     |   6 +-
 .../aparapi/codegen/test/PreIncByteTest.java  |  28 ++++-
 .../codegen/test/PreIncIntFieldTest.java      |   6 +-
 .../aparapi/codegen/test/PreIncIntTest.java   |  31 +++++-
 .../test/PreIncLocalStandaloneTest.java       |  26 ++++-
 .../aparapi/codegen/test/PreIncLocalTest.java |  30 ++++-
 .../codegen/test/PreIncLocalTwiceTest.java    |  30 ++++-
 .../test/ReturnBooleanNewArrayTest.java       |   6 +-
 .../test/ReturnBooleanVarArrayTest.java       |   6 +-
 .../codegen/test/ReturnByteArrayNewTest.java  |   7 +-
 .../codegen/test/ReturnByteArrayVarTest.java  |   6 +-
 .../test/ReturnDoubleArrayNewTest.java        |   6 +-
 .../test/ReturnDoubleArrayVarTest.java        |   6 +-
 .../codegen/test/ReturnFloatArrayNewTest.java |   6 +-
 .../codegen/test/ReturnFloatArrayVarTest.java |   6 +-
 .../codegen/test/ReturnIntArrayNewTest.java   |   6 +-
 .../codegen/test/ReturnIntArrayVarTest.java   |   6 +-
 .../codegen/test/ReturnLongArrayNewTest.java  |   6 +-
 .../codegen/test/ReturnLongArrayVarTest.java  |   6 +-
 .../codegen/test/ReturnPostIncIntTest.java    |  26 ++++-
 .../codegen/test/ReturnPreIncIntTest.java     |  27 ++++-
 .../codegen/test/ReturnShortArrayNewTest.java |   6 +-
 .../codegen/test/ReturnShortArrayVarTest.java |   6 +-
 .../aparapi/codegen/test/RightShiftsTest.java |  35 +++++-
 .../aparapi/codegen/test/SequenceTest.java    |  23 +++-
 .../codegen/test/StaticFieldStoreTest.java    |   6 +-
 .../codegen/test/StaticMethodCallTest.java    |  30 ++++-
 .../codegen/test/SynchronizedMethodsTest.java |   6 +-
 .../com/aparapi/codegen/test/TernaryTest.java |  27 ++++-
 145 files changed, 3243 insertions(+), 433 deletions(-)

diff --git a/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java b/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java
index e72927f7..2103e27b 100644
--- a/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AndOrAndPrecedenceTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AndOrAndPrecedenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char a = 1;\n" +
+"      char b = 1;\n" +
+"      char c = 1;\n" +
+"      char d = 1;\n" +
+"      char pass = 0;\n" +
+"      if (a!=0 && b!=0 || c!=0 && d!=0){\n" +
+"         pass = 1;\n" +
+"      }\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void AndOrAndPrecedenceTest() {
         test(com.aparapi.codegen.test.AndOrAndPrecedence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AndOrAndPrecedenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AndOrAndPrecedence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java b/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java
index b6d165a7..bee966f1 100644
--- a/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/AndOrPrecedence2Test.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AndOrPrecedence2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+"typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char a = 0;\n" +
+"      char b = 0;\n" +
+"      char d = 0;\n" +
+"      char pass = 0;\n" +
+"      if (a!=0 && (b==0 || d==0)){\n" +
+"         pass = 1;\n" +
+"      }\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedence2Test() {
         test(com.aparapi.codegen.test.AndOrPrecedence2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedence2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.AndOrPrecedence2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java b/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java
index 551dc90c..9d36028f 100644
--- a/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AndOrPrecedenceTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class AndOrPrecedenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char a = 1;\n" +
+"      char b = 0;\n" +
+"      char c = 0;\n" +
+"      char pass = 0;\n" +
+"      if (a!=0 || b!=0 && c!=0){\n" +
+"         pass = 1;\n" +
+"      }\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
+    
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedenceTest() {
         test(com.aparapi.codegen.test.AndOrPrecedence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AndOrPrecedenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AndOrPrecedence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java b/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java
index a4f42eec..212f2018 100644
--- a/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/ArbitraryScope2Test.java
@@ -18,16 +18,66 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArbitraryScope2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" {\n" +
+" int count = 0;\n" +
+" count++;\n" +
+" }\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" for (int iter = 0; iter<this->maxIterations; iter++){\n" +
+" if ((x2 + y2)<=scaleSquare){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" } else {\n" +
+" count--;\n" +
+" }\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScope2Test() {
         test(com.aparapi.codegen.test.ArbitraryScope2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScope2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArbitraryScope2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java
index 230ff974..af73ce36 100644
--- a/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ArbitraryScopeSimpleTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArbitraryScopeSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int value = 10;\n" +
+" {\n" +
+" int count = 10;\n" +
+" float f = 10.0f;\n" +
+" value = (int)((float)count * f);\n" +
+" }\n" +
+" int result = 0;\n" +
+" int count = 0;\n" +
+" result = value + count;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+""};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScopeSimpleTest() {
         test(com.aparapi.codegen.test.ArbitraryScopeSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArbitraryScopeSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArbitraryScopeSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java b/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java
index c2c5168c..3eb48358 100644
--- a/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java
+++ b/src/test/java/com/aparapi/codegen/test/ArrayTortureIssue35Test.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ArrayTortureIssue35Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" __global int *a;\n" +
+" __global int *b;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *a,\n" +
+" __global int *b,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->a = a;\n" +
+" this->b = b;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->a[this->b[0]++] = 1;\n" +
+" return;\n" +
+" }\n" +
+" }"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ArrayTortureIssue35Test() {
         test(com.aparapi.codegen.test.ArrayTortureIssue35.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ArrayTortureIssue35TestWorksWithCaching() {
         test(com.aparapi.codegen.test.ArrayTortureIssue35.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java b/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java
index 9376dbfb..650372e4 100644
--- a/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/AssignFieldTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class AssignFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void AssignFieldTest() {
         test(com.aparapi.codegen.test.AssignField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void AssignFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.AssignField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java b/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java
index a5337c95..070d39a1 100644
--- a/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java
+++ b/src/test/java/com/aparapi/codegen/test/Atomic32PragmaTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class Atomic32PragmaTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable\n" +
+" #pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable\n" +
+" #pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics : enable\n" +
+" #pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable\n" +
+" int atomicAdd(__global int *_arr, int _index, int _delta){\n" +
+" return atomic_add(&_arr[_index], _delta);\n" +
+" }\n" +
+" typedef struct This_s{\n" +
+" __global int *values;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *values,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->values = values;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" atomicAdd(this->values, 1, 1);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void Atomic32PragmaTest() {
         test(com.aparapi.codegen.test.Atomic32Pragma.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void Atomic32PragmaTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Atomic32Pragma.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java b/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java
index 22640e29..bf2b3cec 100644
--- a/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/BooleanToggleTest.java
@@ -18,16 +18,32 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class BooleanToggleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"   int passid;\n" +
+"}This;\n" +
+"int get_pass_id(This *this){\n" +
+"   return this->passid;\n" +
+"}\n" +
+"__kernel void run(\n" +
+"   int passid\n" +
+"){\n" +
+"   This thisStruct;\n" +
+"   This* this=&thisStruct;\n" +
+"   this->passid = passid;\n" +
+"   {\n" +
+"      char pass = 0;\n" +
+"      pass = (pass==0)?1:0;\n" +
+"      return;\n" +
+"   }\n" +
+"}"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void BooleanToggleTest() {
         test(com.aparapi.codegen.test.BooleanToggle.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void BooleanToggleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.BooleanToggle.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/BreakTest.java b/src/test/java/com/aparapi/codegen/test/BreakTest.java
index 73daa3d5..900f2b5e 100644
--- a/src/test/java/com/aparapi/codegen/test/BreakTest.java
+++ b/src/test/java/com/aparapi/codegen/test/BreakTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class BreakTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void BreakTest() {
         test(com.aparapi.codegen.test.Break.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void BreakTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Break.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java b/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java
index c3998f22..f6deaf97 100644
--- a/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ByteParamsSimpleTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ByteParamsSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        " typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" void com_amd_aparapi_test_ByteParamsSimple__addEmUp2(This *this, char x, char y){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char bb = 0;\n" +
+" char cc = 7;\n" +
+" com_amd_aparapi_test_ByteParamsSimple__addEmUp2(this, bb, cc);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ByteParamsSimpleTest() {
         test(com.aparapi.codegen.test.ByteParamsSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ByteParamsSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ByteParamsSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java b/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java
index 408a2b2c..2f000b24 100644
--- a/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallGetPassIdTest.java
@@ -18,16 +18,30 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallGetPassIdTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int thePassId = get_pass_id(this);\n" +
+" return;\n" +
+" }\n" +
+" }"};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallGetPassIdTest() {
         test(com.aparapi.codegen.test.CallGetPassId.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallGetPassIdTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallGetPassId.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java b/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java
index 2adfbbde..d97ee88a 100644
--- a/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallObjectStaticTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallObjectStaticTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallObjectStatic$Dummy__foo(){\n" +
+" return(42);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_CallObjectStatic$Dummy__foo();\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallObjectStaticTest() {
         test(com.aparapi.codegen.test.CallObjectStatic.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallObjectStaticTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallObjectStatic.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallObjectTest.java b/src/test/java/com/aparapi/codegen/test/CallObjectTest.java
index c26d62f3..22cce1c6 100644
--- a/src/test/java/com/aparapi/codegen/test/CallObjectTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallObjectTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class CallObjectTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void CallObjectTest() {
         test(com.aparapi.codegen.test.CallObject.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallObjectTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallObject.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java b/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java
index e70e71a9..b81c8881 100644
--- a/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallRunSuperTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallRunSuperTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {"typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_CallRunSuperBase__run(This *this){\n" +
+" this->out[0]  = 2;\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_CallRunSuperBase__run(this);\n" +
+" this->out[1]  = 3;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallRunSuperTest() {
         test(com.aparapi.codegen.test.CallRunSuper.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallRunSuperTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallRunSuper.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java b/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java
index df8c0943..10ad4e1e 100644
--- a/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallStaticInAnotherClassTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallStaticInAnotherClassTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+"typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_AnotherClass__foo(){\n" +
+" return(42);\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallStaticInAnotherClass__doodoo(This *this){\n" +
+" return(com_amd_aparapi_test_AnotherClass__foo());\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_AnotherClass__foo() + com_amd_aparapi_test_CallStaticInAnotherClass__doodoo(this);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallStaticInAnotherClassTest() {
         test(com.aparapi.codegen.test.CallStaticInAnotherClass.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallStaticInAnotherClassTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallStaticInAnotherClass.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallSuperTest.java b/src/test/java/com/aparapi/codegen/test/CallSuperTest.java
index 2270d9b3..8b29436a 100644
--- a/src/test/java/com/aparapi/codegen/test/CallSuperTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallSuperTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallSuperTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_CallSuperBase__foo(This *this, int n){\n" +
+" return((n * 2));\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallSuper__foo(This *this, int n){\n" +
+" return((1 + com_amd_aparapi_test_CallSuperBase__foo(this, n)));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_CallSuper__foo(this, 2);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallSuperTest() {
         test(com.aparapi.codegen.test.CallSuper.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallSuperTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallSuper.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java b/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java
index 8effb469..485f4154 100644
--- a/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CallTwiceTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CallTwiceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+" typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_CallTwice__getOne(This *this){\n" +
+" return(1);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_CallTwice__getOne(this) + com_amd_aparapi_test_CallTwice__getOne(this);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CallTwiceTest() {
         test(com.aparapi.codegen.test.CallTwice.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CallTwiceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CallTwice.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java b/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java
index 5790c1d1..816e32f2 100644
--- a/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CharArrayFieldTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CharArrayFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+"typedef struct This_s{\n" +
+" __global unsigned short  *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global unsigned short  *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = 0;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CharArrayFieldTest() {
         test(com.aparapi.codegen.test.CharArrayField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CharArrayFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CharArrayField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java b/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java
index 915f112a..5ff3c40d 100644
--- a/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CharAsParameterTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CharAsParameterTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" unsigned short com_amd_aparapi_test_CharAsParameter__doIt(This *this, unsigned short x){\n" +
+" return(x);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char b = 1;\n" +
+" com_amd_aparapi_test_CharAsParameter__doIt(this, 65);\n" +
+" com_amd_aparapi_test_CharAsParameter__doIt(this, (unsigned short )b);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CharAsParameterTest() {
         test(com.aparapi.codegen.test.CharAsParameter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CharAsParameterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CharAsParameter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CharTypeTest.java b/src/test/java/com/aparapi/codegen/test/CharTypeTest.java
index eb5e98d8..aff15a14 100644
--- a/src/test/java/com/aparapi/codegen/test/CharTypeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CharTypeTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CharTypeTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" unsigned short c = 65535;\n" +
+" this->out[0]  = 65535;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CharTypeTest() {
         test(com.aparapi.codegen.test.CharType.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CharTypeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CharType.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java b/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java
index 6bd9a0ab..b2ba54c3 100644
--- a/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ClassHasStaticFieldAccessTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ClassHasStaticFieldAccessTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int foo;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int foo,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->foo = foo;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" for (int i = 0; i<1024; i++){\n" +
+" if ((i % 2)==0){\n" +
+" this->ints[i]  = foo;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticFieldAccessTest() {
         test(com.aparapi.codegen.test.ClassHasStaticFieldAccess.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticFieldAccessTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ClassHasStaticFieldAccess.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java
index 99f6dff2..b5b6b10a 100644
--- a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodSimpleTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ClassHasStaticMethodSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" void com_amd_aparapi_test_ClassHasStaticMethodSimple__staticMethod(){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_ClassHasStaticMethodSimple__staticMethod();\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodSimpleTest() {
         test(com.aparapi.codegen.test.ClassHasStaticMethodSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ClassHasStaticMethodSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java
index ed001eaa..a5e84f9c 100644
--- a/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ClassHasStaticMethodTest.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ClassHasStaticMethodTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_ClassHasStaticMethod__getIntAndReturnIt(int a){\n" +
+" return((1 - a));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int foo = 1;\n" +
+" for (int i = 0; i<1024; i++){\n" +
+" if ((i % 2)==0){\n" +
+" this->ints[i] = foo;\n" +
+" } else {\n" +
+" this->ints[i] = com_amd_aparapi_test_ClassHasStaticMethod__getIntAndReturnIt(foo);\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodTest() {
         test(com.aparapi.codegen.test.ClassHasStaticMethod.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ClassHasStaticMethodTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ClassHasStaticMethod.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java b/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java
index 7e581aae..de3df1b1 100644
--- a/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/CompositeArbitraryScopeTest.java
@@ -18,16 +18,109 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class CompositeArbitraryScopeTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t5(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" int thisCount = 0;\n" +
+" for (; numRemaining>0 && gid>0; numRemaining++){\n" +
+" numRemaining++;\n" +
+" thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" gid = gid - thisCount;\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t4(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" while (numRemaining>0 && gid>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" numRemaining++;\n" +
+" gid--;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t3(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" while (numRemaining>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" numRemaining++;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t2(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" for (; numRemaining>0; numRemaining){\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" void com_amd_aparapi_test_CompositeArbitraryScope__t1(This *this){\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" while (numRemaining>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int gid = get_global_id(0);\n" +
+" int numRemaining = 1;\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t1(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t2(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t3(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t4(this);\n" +
+" com_amd_aparapi_test_CompositeArbitraryScope__t5(this);\n" +
+" while (numRemaining>0){\n" +
+" numRemaining++;\n" +
+" {\n" +
+" int thisCount = min(numRemaining, gid);\n" +
+" numRemaining = numRemaining - thisCount;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void CompositeArbitraryScopeTest() {
         test(com.aparapi.codegen.test.CompositeArbitraryScope.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void CompositeArbitraryScopeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.CompositeArbitraryScope.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java b/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java
index b6ef1cf2..962957ba 100644
--- a/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ConstantAssignInExpressionTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ConstantAssignInExpressionTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_ConstantAssignInExpression__func(This *this, int _arg){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int result = 1;\n" +
+" com_amd_aparapi_test_ConstantAssignInExpression__func(this, result=0);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ConstantAssignInExpressionTest() {
         test(com.aparapi.codegen.test.ConstantAssignInExpression.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ConstantAssignInExpressionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ConstantAssignInExpression.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ContinueTest.java b/src/test/java/com/aparapi/codegen/test/ContinueTest.java
index 3e349248..da4aae41 100644
--- a/src/test/java/com/aparapi/codegen/test/ContinueTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ContinueTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ContinueTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i<10; i++){\n" +
+" if (i==5){\n" +
+" } else {\n" +
+" pass = 1;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ContinueTest() {
         test(com.aparapi.codegen.test.Continue.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ContinueTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Continue.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java b/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java
index eef016f7..697ea2f3 100644
--- a/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ContinueTortureTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ContinueTortureTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ContinueTortureTest() {
         test(com.aparapi.codegen.test.ContinueTorture.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ContinueTortureTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ContinueTorture.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java b/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java
index e105289d..bd39a174 100644
--- a/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/DirectRecursionTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class DirectRecursionTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void DirectRecursionTest() {
         test(com.aparapi.codegen.test.DirectRecursion.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void DirectRecursionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.DirectRecursion.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/DoWhileTest.java b/src/test/java/com/aparapi/codegen/test/DoWhileTest.java
index 863699b6..88198b4b 100644
--- a/src/test/java/com/aparapi/codegen/test/DoWhileTest.java
+++ b/src/test/java/com/aparapi/codegen/test/DoWhileTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class DoWhileTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" int i = 0;\n" +
+" do{\n" +
+" pass = 1;\n" +
+" i++;\n" +
+" }while (i<10);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void DoWhileTest() {
         test(com.aparapi.codegen.test.DoWhile.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void DoWhileTestWorksWithCaching() {
         test(com.aparapi.codegen.test.DoWhile.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/DremTest.java b/src/test/java/com/aparapi/codegen/test/DremTest.java
index e30bc872..4ec391ca 100644
--- a/src/test/java/com/aparapi/codegen/test/DremTest.java
+++ b/src/test/java/com/aparapi/codegen/test/DremTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class DremTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global double *out;\n" +
+" double m;\n" +
+" double n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global double *out,\n" +
+" double m,\n" +
+" double n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = this->m % this->n;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void DremTest() {
         test(com.aparapi.codegen.test.Drem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void DremTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Drem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java b/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java
index 5024cdc8..9168956e 100644
--- a/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java
+++ b/src/test/java/com/aparapi/codegen/test/EarlyReturnTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class EarlyReturnTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" int i=0;\n" +
+" if ((i%2)==0){\n" +
+" return;\n" +
+" }\n" +
+" i++;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void EarlyReturnTest() {
         test(com.aparapi.codegen.test.EarlyReturn.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void EarlyReturnTestWorksWithCaching() {
         test(com.aparapi.codegen.test.EarlyReturn.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java b/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java
index 388c88a4..039b3214 100644
--- a/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/EmptyWhileWithIncTest.java
@@ -18,16 +18,32 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class EmptyWhileWithIncTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" for (int x = 0; x++<10;){}\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void EmptyWhileWithIncTest() {
         test(com.aparapi.codegen.test.EmptyWhileWithInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void EmptyWhileWithIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.EmptyWhileWithInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java b/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java
index 67ef9931..e367dddb 100644
--- a/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/EntrypointRecursionTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class EntrypointRecursionTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void EntrypointRecursionTest() {
         test(com.aparapi.codegen.test.EntrypointRecursion.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void EntrypointRecursionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.EntrypointRecursion.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ExTest.java b/src/test/java/com/aparapi/codegen/test/ExTest.java
index 809dd3e1..051eca92 100644
--- a/src/test/java/com/aparapi/codegen/test/ExTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ExTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ExTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int total = 0;\n" +
+" for (int i = 0; i<100; i++){\n" +
+" if ((i % 10)==0 && (i % 4)==0){\n" +
+" total++;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ExTest() {
         test(com.aparapi.codegen.test.Ex.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ExTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Ex.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java
index 49dfd770..d3f55664 100644
--- a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpression2Test.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FirstAssignInExpression2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int value = 1;\n" +
+" int result=0;\n" +
+" int assignMe=0;\n" +
+" if (true){\n" +
+" result = assignMe = value;\n" +
+" }else{\n" +
+" assignMe =1;\n" +
+" result=2;\n" +
+" }\n" +
+" result++;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpression2Test() {
         test(com.aparapi.codegen.test.FirstAssignInExpression2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpression2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.FirstAssignInExpression2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java
index 2bf88c25..144cebca 100644
--- a/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FirstAssignInExpressionTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FirstAssignInExpressionTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void func(This *this, int _arg){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int result;\n" +
+" func(this, result = 0);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpressionTest() {
         test(com.aparapi.codegen.test.FirstAssignInExpression.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FirstAssignInExpressionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.FirstAssignInExpression.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java b/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java
index 40595596..f05bdb54 100644
--- a/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FloatParamsSimpleTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FloatParamsSimpleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_FloatParamsSimple__floatParams(This *this, float y){\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_FloatParamsSimple__floatParams(this, 0.0f);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsSimpleTest() {
         test(com.aparapi.codegen.test.FloatParamsSimple.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsSimpleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.FloatParamsSimple.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java b/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java
index 378829a1..968dad9b 100644
--- a/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FloatParamsTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FloatParamsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_FloatParams__addEmUp(This *this, float y, float z){\n" +
+" return(((int)y + (int)z));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int y = 2;\n" +
+" float x = 0.0f;\n" +
+" com_amd_aparapi_test_FloatParams__addEmUp(this, x=(float)y, x);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsTest() {
         test(com.aparapi.codegen.test.FloatParams.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FloatParamsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.FloatParams.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java b/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java
index 17cddbcc..f78d08b6 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAndMandelNoInitializeTest.java
@@ -18,16 +18,61 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAndMandelNoInitializeTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" int iter = 0;\n" +
+" for (; (x2 + y2)<=scaleSquare && iter<this->maxIterations; iter++){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelNoInitializeTest() {
         test(com.aparapi.codegen.test.ForAndMandelNoInitialize.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelNoInitializeTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAndMandelNoInitialize.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java b/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java
index 2c80c53f..d2b055cb 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAndMandelTest.java
@@ -18,16 +18,60 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAndMandelTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" for (int iter = 0; (x2 + y2)<=scaleSquare && iter<this->maxIterations; iter++){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelTest() {
         test(com.aparapi.codegen.test.ForAndMandel.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAndMandelTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAndMandel.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAndTest.java b/src/test/java/com/aparapi/codegen/test/ForAndTest.java
index 7240866f..786225dd 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAndTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAndTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i>2 && i<10; i++){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAndTest() {
         test(com.aparapi.codegen.test.ForAnd.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAnd.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java b/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java
index 84dddaf2..df54814c 100644
--- a/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForAsFirstTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForAsFirstTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" for (int i = 0; i<1; i++){\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForAsFirstTest() {
         test(com.aparapi.codegen.test.ForAsFirst.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForAsFirstTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForAsFirst.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java b/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java
index afbe1bf3..fd3491ba 100644
--- a/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForBooleanToggleTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForBooleanToggleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i>2 && i<10; i++){\n" +
+" pass = (pass==0)?1:0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForBooleanToggleTest() {
         test(com.aparapi.codegen.test.ForBooleanToggle.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForBooleanToggleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForBooleanToggle.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForBreakTest.java b/src/test/java/com/aparapi/codegen/test/ForBreakTest.java
index 852ac1ad..d12dab14 100644
--- a/src/test/java/com/aparapi/codegen/test/ForBreakTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForBreakTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ForBreakTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ForBreakTest() {
         test(com.aparapi.codegen.test.ForBreak.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForBreakTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForBreak.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForEachTest.java b/src/test/java/com/aparapi/codegen/test/ForEachTest.java
index ed751fad..4f0b782b 100644
--- a/src/test/java/com/aparapi/codegen/test/ForEachTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForEachTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ForEachTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ForEachTest() {
         test(com.aparapi.codegen.test.ForEach.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForEachTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForEach.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java b/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java
index be67ca88..933895c9 100644
--- a/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForIfMandelTest.java
@@ -18,16 +18,64 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForIfMandelTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int width;\n" +
+" float scale;\n" +
+" int maxIterations;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int width,\n" +
+" float scale,\n" +
+" int maxIterations,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->width = width;\n" +
+" this->scale = scale;\n" +
+" this->maxIterations = maxIterations;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int tid = 0;\n" +
+" int i = tid % this->width;\n" +
+" int j = tid / this->width;\n" +
+" float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width;\n" +
+" float x = x0;\n" +
+" float y = y0;\n" +
+" float x2 = x * x;\n" +
+" float y2 = y * y;\n" +
+" float scaleSquare = this->scale * this->scale;\n" +
+" int count = 0;\n" +
+" for (int iter = 0; iter<this->maxIterations; iter++){\n" +
+" if ((x2 + y2)<=scaleSquare){\n" +
+" y = ((2.0f * x) * y) + y0;\n" +
+" x = (x2 - y2) + x0;\n" +
+" x2 = x * x;\n" +
+" y2 = y * y;\n" +
+" count++;\n" +
+" } else {\n" +
+" count--;\n" +
+" }\n" +
+" }\n" +
+" int value = (256 * count) / this->maxIterations;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForIfMandelTest() {
         test(com.aparapi.codegen.test.ForIfMandel.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForIfMandelTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForIfMandel.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForIfTest.java b/src/test/java/com/aparapi/codegen/test/ForIfTest.java
index 95a1d3c8..a0d95778 100644
--- a/src/test/java/com/aparapi/codegen/test/ForIfTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForIfTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForIfTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i>2; i++){\n" +
+" if (i==3){\n" +
+" pass = 1;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForIfTest() {
         test(com.aparapi.codegen.test.ForIf.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForIfTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ForIf.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ForTest.java b/src/test/java/com/aparapi/codegen/test/ForTest.java
index d91894fa..c9a26974 100644
--- a/src/test/java/com/aparapi/codegen/test/ForTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ForTest.java
@@ -18,16 +18,35 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ForTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i<10; i++){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ForTest() {
         test(com.aparapi.codegen.test.For.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ForTestWorksWithCaching() {
         test(com.aparapi.codegen.test.For.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/FremTest.java b/src/test/java/com/aparapi/codegen/test/FremTest.java
index e2cb8d0d..95389efb 100644
--- a/src/test/java/com/aparapi/codegen/test/FremTest.java
+++ b/src/test/java/com/aparapi/codegen/test/FremTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class FremTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global float *out;\n" +
+" float m;\n" +
+" float n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global float *out,\n" +
+" float m,\n" +
+" float n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = this->m % this->n;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void FremTest() {
         test(com.aparapi.codegen.test.Frem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void FremTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Frem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java b/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java
index d6a56b82..8edaf00d 100644
--- a/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IEEERemainderDoubleTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IEEERemainderDoubleTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global double *out;\n" +
+" double m;\n" +
+" double n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global double *out,\n" +
+" double m,\n" +
+" double n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = remainder(this->m, this->n);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderDoubleTest() {
         test(com.aparapi.codegen.test.IEEERemainderDouble.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderDoubleTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IEEERemainderDouble.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java b/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java
index 66511edc..c591f4fa 100644
--- a/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IEEERemainderFloatTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IEEERemainderFloatTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global float *out;\n" +
+" float m;\n" +
+" float n;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global float *out,\n" +
+" float m,\n" +
+" float n,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->m = m;\n" +
+" this->n = n;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = remainder(this->m, this->n);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderFloatTest() {
         test(com.aparapi.codegen.test.IEEERemainderFloat.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IEEERemainderFloatTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IEEERemainderFloat.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IfTest.java b/src/test/java/com/aparapi/codegen/test/IfTest.java
index c3163de0..b9d30e1b 100644
--- a/src/test/java/com/aparapi/codegen/test/IfTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IfTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IfTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int testValue = 10;\n" +
+" char pass = 0;\n" +
+" if ( (testValue % 4) == 0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IfTest() {
         test(com.aparapi.codegen.test.If.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IfTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java
index 1bd8ff6c..aa343693 100644
--- a/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_IfElseIfElseElse_ElseTest.java
@@ -18,16 +18,50 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_IfElseIfElseElse_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char c = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" if (c!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" result = 1;\n" +
+" }\n" +
+" }\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_IfElseIfElseElse_ElseTest() {
         test(com.aparapi.codegen.test.If_IfElseIfElseElse_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_IfElseIfElseElse_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_IfElseIfElseElse_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java
index 570d4ac6..19ecd703 100644
--- a/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_IfElse_ElseTest.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_IfElse_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" result = 1;\n" +
+" }\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_ElseTest() {
         test(com.aparapi.codegen.test.If_IfElse_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_IfElse_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java b/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java
index 413015b5..babace06 100644
--- a/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java
+++ b/src/test/java/com/aparapi/codegen/test/If_IfElse_Else_IfElse_Test.java
@@ -18,16 +18,53 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_IfElse_Else_IfElse_Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char c = 1;\n" +
+" char d = 1;\n" +
+" int count = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" if (c!=0){\n" +
+" count = 1;\n" +
+" } else {\n" +
+" count = 2;\n" +
+" }\n" +
+" } else {\n" +
+" if (d!=0){\n" +
+" count = 3;\n" +
+" } else {\n" +
+" count = 4;\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_Else_IfElse_Test() {
         test(com.aparapi.codegen.test.If_IfElse_Else_IfElse_.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_IfElse_Else_IfElse_TestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_IfElse_Else_IfElse_.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java b/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java
index 3e9e70c8..5ddc53c5 100644
--- a/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java
+++ b/src/test/java/com/aparapi/codegen/test/If_If_Else2Test.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_If_Else2Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0 && b!=0){\n" +
+" result = 1;\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else2Test() {
         test(com.aparapi.codegen.test.If_If_Else2.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else2TestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_If_Else2.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java
index 91106ccb..872814b2 100644
--- a/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_If_ElseTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_If_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" }\n" +
+" } else {\n" +
+" result = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_If_ElseTest() {
         test(com.aparapi.codegen.test.If_If_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_If_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_If_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java b/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java
index 6729086b..147c20b7 100644
--- a/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java
+++ b/src/test/java/com/aparapi/codegen/test/If_If_Else_If_Test.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_If_Else_If_Test extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char result = 0;\n" +
+" if (a!=0){\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" }\n" +
+" } else {\n" +
+" if (b!=0){\n" +
+" result = 1;\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else_If_Test() {
         test(com.aparapi.codegen.test.If_If_Else_If_.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_If_Else_If_TestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_If_Else_If_.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java b/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java
index a5bd5e35..24191f4e 100644
--- a/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_OrOr_AndTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_OrOr_AndTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int testValue = 10;\n" +
+" char pass = 0;\n" +
+" if (((testValue % 2)==0 || testValue<=0 || testValue>=100) && (testValue % 4)==0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_OrOr_AndTest() {
         test(com.aparapi.codegen.test.If_OrOr_And.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_OrOr_AndTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_OrOr_And.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java b/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java
index 34f4211c..96d53946 100644
--- a/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_While_ElseTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_While_ElseTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" if (a!=0){\n" +
+" for (; a!=0; a = 0){\n" +
+" }\n" +
+" } else {\n" +
+" a = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_While_ElseTest() {
         test(com.aparapi.codegen.test.If_While_Else.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_While_ElseTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_While_Else.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java b/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java
index 6ecc5688..e9f42e99 100644
--- a/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java
+++ b/src/test/java/com/aparapi/codegen/test/If_While_Else_WhileTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class If_While_Else_WhileTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" if (a!=0){\n" +
+" for (; a!=0; a = 0){\n" +
+" }\n" +
+" } else {\n" +
+" for (; a==0; a = 1){\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void If_While_Else_WhileTest() {
         test(com.aparapi.codegen.test.If_While_Else_While.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void If_While_Else_WhileTestWorksWithCaching() {
         test(com.aparapi.codegen.test.If_While_Else_While.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java b/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java
index 212115dc..f74d0541 100644
--- a/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ImplementsInterfaceTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ImplementsInterfaceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int ival;\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_ImplementsInterface__bar(This *this, int n){\n" +
+" return((n + this->ival));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int ival,\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ival = ival;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_ImplementsInterface__bar(this, 1);\n" +
+" char pass = 0;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ImplementsInterfaceTest() {
         test(com.aparapi.codegen.test.ImplementsInterface.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ImplementsInterfaceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ImplementsInterface.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java b/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java
index cdf452b7..d7e31a2c 100644
--- a/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IncArrayArgContentTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class IncArrayArgContentTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *arr;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_IncArrayArgContent__incit(This *this,  __global int* arr){\n" +
+" arr[0]  = arr[0] + 1;\n" +
+" return;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *arr,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->arr = arr;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" com_amd_aparapi_test_IncArrayArgContent__incit(this, this->arr);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void IncArrayArgContentTest() {
         test(com.aparapi.codegen.test.IncArrayArgContent.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IncArrayArgContentTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IncArrayArgContent.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IncFieldTest.java b/src/test/java/com/aparapi/codegen/test/IncFieldTest.java
index b55a7881..a2b55db8 100644
--- a/src/test/java/com/aparapi/codegen/test/IncFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IncFieldTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class IncFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void IncFieldTest() {
         test(com.aparapi.codegen.test.IncField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IncFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IncField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java b/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java
index dc00394c..dfcfac18 100644
--- a/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java
+++ b/src/test/java/com/aparapi/codegen/test/IndirectRecursionTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class IndirectRecursionTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void IndirectRecursionTest() {
         test(com.aparapi.codegen.test.IndirectRecursion.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void IndirectRecursionTestWorksWithCaching() {
         test(com.aparapi.codegen.test.IndirectRecursion.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/InterfaceTest.java b/src/test/java/com/aparapi/codegen/test/InterfaceTest.java
index 06f642b2..c3469366 100644
--- a/src/test/java/com/aparapi/codegen/test/InterfaceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/InterfaceTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class InterfaceTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void InterfaceTest() {
         test(com.aparapi.codegen.test.Interface.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void InterfaceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Interface.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/LongCompareTest.java b/src/test/java/com/aparapi/codegen/test/LongCompareTest.java
index 3ed04f07..558ea2d3 100644
--- a/src/test/java/com/aparapi/codegen/test/LongCompareTest.java
+++ b/src/test/java/com/aparapi/codegen/test/LongCompareTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class LongCompareTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" long n1 = 1L;\n" +
+" long n2 = 2L;\n" +
+" char pass = 0;\n" +
+" if ((n2 - n1)>0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void LongCompareTest() {
         test(com.aparapi.codegen.test.LongCompare.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void LongCompareTestWorksWithCaching() {
         test(com.aparapi.codegen.test.LongCompare.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/LongComparesTest.java b/src/test/java/com/aparapi/codegen/test/LongComparesTest.java
index 18a2436e..6dfd649d 100644
--- a/src/test/java/com/aparapi/codegen/test/LongComparesTest.java
+++ b/src/test/java/com/aparapi/codegen/test/LongComparesTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class LongComparesTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" long l1 = 1L;\n" +
+" long l2 = 1L;\n" +
+" if ((l1 - l2)>0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void LongComparesTest() {
         test(com.aparapi.codegen.test.LongCompares.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void LongComparesTestWorksWithCaching() {
         test(com.aparapi.codegen.test.LongCompares.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/LoopsTest.java b/src/test/java/com/aparapi/codegen/test/LoopsTest.java
index a9c44088..31deb6f6 100644
--- a/src/test/java/com/aparapi/codegen/test/LoopsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/LoopsTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class LoopsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int sum = 0;\n" +
+" for (int i = 0; i<100; i++){\n" +
+" sum = sum + ++i;\n" +
+" }\n" +
+" for (int i = 0; i<100; i++){\n" +
+" sum = sum + i++;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void LoopsTest() {
         test(com.aparapi.codegen.test.Loops.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void LoopsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Loops.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathAbsTest.java b/src/test/java/com/aparapi/codegen/test/MathAbsTest.java
index 3d0f9415..836e079b 100644
--- a/src/test/java/com/aparapi/codegen/test/MathAbsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathAbsTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathAbsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d = -1.0;\n" +
+" float f = -1.0f;\n" +
+" int i = -1;\n" +
+" long n = -1L;\n" +
+" char pass = 1;\n" +
+" if (fabs(d)!=1.0 || fabs(f)!=1.0f || abs(i)!=1 || (abs(n) - 1L)!=0){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathAbsTest() {
         test(com.aparapi.codegen.test.MathAbs.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathAbsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathAbs.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java b/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java
index 8dc8a72f..79db96b7 100644
--- a/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathDegRadTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathDegRadTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d = -1.0;\n" +
+" float f = -1.0f;\n" +
+" char pass = 1;\n" +
+" if (radians(degrees(d))!=d || radians(degrees(f))!=f){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathDegRadTest() {
         test(com.aparapi.codegen.test.MathDegRad.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathDegRadTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathDegRad.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java b/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java
index fb538a1d..ced44207 100644
--- a/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathFallThruTest.java
@@ -18,16 +18,46 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathFallThruTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global long *longout;\n" +
+" __global int *intout;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global long *longout,\n" +
+" __global int *intout,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->longout = longout;\n" +
+" this->intout = intout;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" float f1 = 1.0f;\n" +
+" double d1 = 1.0;\n" +
+" this->longout[0]  = round((ceil(cos(exp(floor(log(pow(d1, d1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(d1, d1))))))))));\n" +
+" this->intout[0]  = round((ceil(cos(exp(floor(log(pow(f1, f1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(f1, f1))))))))));\n" +
+" char pass = 0;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathFallThruTest() {
         test(com.aparapi.codegen.test.MathFallThru.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathFallThruTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathFallThru.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathMaxTest.java b/src/test/java/com/aparapi/codegen/test/MathMaxTest.java
index 2add0856..5a276be4 100644
--- a/src/test/java/com/aparapi/codegen/test/MathMaxTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathMaxTest.java
@@ -18,16 +18,48 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathMaxTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d1 = -1.0;\n" +
+" double d2 = 1.0;\n" +
+" float f1 = -1.0f;\n" +
+" float f2 = 1.0f;\n" +
+" int i1 = -1;\n" +
+" int i2 = 1;\n" +
+" long n1 = -1L;\n" +
+" long n2 = 1L;\n" +
+" char pass = 1;\n" +
+" if (fmax(d1, d2)!=1.0 || fmax(f1, f2)!=1.0f || max(i1, i2)!=1 || (max(n1, n2) - 1L)!=0){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathMaxTest() {
         test(com.aparapi.codegen.test.MathMax.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathMaxTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathMax.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathMinTest.java b/src/test/java/com/aparapi/codegen/test/MathMinTest.java
index caa22adb..72823b7b 100644
--- a/src/test/java/com/aparapi/codegen/test/MathMinTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathMinTest.java
@@ -18,16 +18,48 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathMinTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d1 = -1.0;\n" +
+" double d2 = 1.0;\n" +
+" float f1 = -1.0f;\n" +
+" float f2 = 1.0f;\n" +
+" int i1 = -1;\n" +
+" int i2 = 1;\n" +
+" long n1 = -1L;\n" +
+" long n2 = 1L;\n" +
+" char pass = 1;\n" +
+" if (fmin(d1, d2)!=1.0 || fmin(f1, f2)!=1.0f || min(i1, i2)!=1 || (min(n1, n2) - 1L)!=0){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+"\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathMinTest() {
         test(com.aparapi.codegen.test.MathMin.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathMinTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathMin.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java b/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java
index 56bd0c8c..97bb42c1 100644
--- a/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MathRemainderTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MathRemainderTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d1 = 7.0;\n" +
+" double d2 = 2.0;\n" +
+" float f1 = 7.0f;\n" +
+" float f2 = 2.0f;\n" +
+" char pass = 1;\n" +
+" if (remainder(d1, d2)!=1.0 || remainder(f1, f2)!=1.0f){\n" +
+" pass = 0;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MathRemainderTest() {
         test(com.aparapi.codegen.test.MathRemainder.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MathRemainderTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MathRemainder.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java b/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java
index 54f8a66c..ba6db517 100644
--- a/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MultiContinueTest.java
@@ -18,16 +18,49 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MultiContinueTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" for (int i = 0; i<10; i++){\n" +
+" if (i==5){\n" +
+" } else {\n" +
+" if (i==2){\n" +
+" } else {\n" +
+" if (i==1){\n" +
+" } else {\n" +
+" if (i==10){\n" +
+" } else {\n" +
+" pass = 1;\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MultiContinueTest() {
         test(com.aparapi.codegen.test.MultiContinue.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MultiContinueTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MultiContinue.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java b/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java
index 615304a3..0670ef1a 100644
--- a/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MultipleAssignExprTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MultipleAssignExprTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_MultipleAssignExpr__sum(This *this, int lhs, int rhs){\n" +
+" return((lhs + rhs));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int a = 0;\n" +
+" int b = 0;\n" +
+" int c = 0;\n" +
+" a = b = c = com_amd_aparapi_test_MultipleAssignExpr__sum(this, 1, 2);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignExprTest() {
         test(com.aparapi.codegen.test.MultipleAssignExpr.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignExprTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MultipleAssignExpr.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java b/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java
index 85bcd8e1..1d26c90f 100644
--- a/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java
+++ b/src/test/java/com/aparapi/codegen/test/MultipleAssignTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class MultipleAssignTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int a = 0;\n" +
+" int b = 0;\n" +
+" int c = 0;\n" +
+" a = b = c = 4;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignTest() {
         test(com.aparapi.codegen.test.MultipleAssign.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void MultipleAssignTestWorksWithCaching() {
         test(com.aparapi.codegen.test.MultipleAssign.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NaNTest.java b/src/test/java/com/aparapi/codegen/test/NaNTest.java
index 0ed91ff9..a3f71b83 100644
--- a/src/test/java/com/aparapi/codegen/test/NaNTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NaNTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NaNTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "#pragma OPENCL EXTENSION cl_khr_fp64 : enable\n" +
+"\n" +
+" typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" double d = 1.0E-10;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NaNTest() {
         test(com.aparapi.codegen.test.NaN.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NaNTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NaN.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java b/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java
index 4fb9aaa2..f316a8a3 100644
--- a/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NewLocalArrayTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NewLocalArrayTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char pass = 0;\n" +
+" int i = 0;\n" +
+" if (i++==0){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NewLocalArrayTest() {
         test(com.aparapi.codegen.test.NewLocalArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NewLocalArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NewLocalArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java b/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java
index 8c69e7e0..cbd60087 100644
--- a/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NonNullCheckTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NonNullCheckTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" if (this->ints != NULL){\n" +
+" int value = this->ints[0];\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NonNullCheckTest() {
         test(com.aparapi.codegen.test.NonNullCheck.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NonNullCheckTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NonNullCheck.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/NullCheckTest.java b/src/test/java/com/aparapi/codegen/test/NullCheckTest.java
index c6c0d882..d3335fac 100644
--- a/src/test/java/com/aparapi/codegen/test/NullCheckTest.java
+++ b/src/test/java/com/aparapi/codegen/test/NullCheckTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class NullCheckTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *ints;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global int *ints,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->ints = ints;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" if (this->ints == NULL){\n" +
+" return;\n" +
+" }\n" +
+" int value = this->ints[0];\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void NullCheckTest() {
         test(com.aparapi.codegen.test.NullCheck.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void NullCheckTestWorksWithCaching() {
         test(com.aparapi.codegen.test.NullCheck.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java
index 4084dd85..bec4b2bd 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayCallHierarchyTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayCallHierarchyTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCallHierarchyTest() {
         test(com.aparapi.codegen.test.ObjectArrayCallHierarchy.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCallHierarchyTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayCallHierarchy.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java
index 81fa2518..2acf29d4 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayCommonSuperTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayCommonSuperTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCommonSuperTest() {
         test(com.aparapi.codegen.test.ObjectArrayCommonSuper.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayCommonSuperTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayCommonSuper.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java
index a0668bd7..8677dabb 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberAccessTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberAccessTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = {""};
+    private static final String[] expectedOpenCL = {
+        "typedef struct com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA_s{\n" +
+" int  mem;\n" +
+" float  floatField;\n" +
+"\n" +
+" } com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA *dummy;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA *dummy,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->dummy = dummy;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" this->dummy[myId].mem=this->dummy[myId].mem + 2;\n" +
+" this->dummy[myId].floatField=this->dummy[myId].floatField + 2.0f;\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberAccessTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberAccess.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberAccessTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberAccess.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java
index a13c8cad..d10237ed 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadGetterTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayMemberBadGetterTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadGetterTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadGetter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadGetterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadGetter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java
index 498bb833..33bd9dbf 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberBadSetterTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayMemberBadSetterTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadSetterTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadSetter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberBadSetterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberBadSetter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java
index ca92e44b..0b0e20bb 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberCallTest.java
@@ -18,16 +18,56 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberCallTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA_s{\n" +
+" int  mem;\n" +
+"\n" +
+" } com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *dummy;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__getMem( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this){\n" +
+" return(this->mem);\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x, int y){\n" +
+" return((x + y));\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUpPlusOne( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x, int y){\n" +
+" return(((com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp(this, x, y) + 1) + com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__getMem(this)));\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addToMem( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x){\n" +
+" return((x + this->mem));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *dummy,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->dummy = dummy;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" this->dummy[myId].mem=com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp( &(this->dummy[myId]), this->dummy[myId].mem, 2);\n" +
+" int tmp = com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addToMem( &(this->dummy[myId]), 2);\n" +
+" int tmp2 = com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUpPlusOne( &(this->dummy[myId]), 2, tmp);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberCallTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberCall.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberCallTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberCall.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java
index 24bfc5cf..e2623a00 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberGetterSetterTest.java
@@ -18,16 +18,114 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberGetterSetterTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct com_amd_aparapi_test_TheOtherOne_s{\n" +
+" int  mem;\n" +
+"\n" +
+" } com_amd_aparapi_test_TheOtherOne;\n" +
+"\n" +
+" typedef struct com_amd_aparapi_test_DummyOOA_s{\n" +
+" long  longField;\n" +
+" float  floatField;\n" +
+" int  mem;\n" +
+" char  boolField;\n" +
+" char _pad_17;\n" +
+" char _pad_18;\n" +
+" char _pad_19;\n" +
+" char _pad_20;\n" +
+" char _pad_21;\n" +
+" char _pad_22;\n" +
+" char _pad_23;\n" +
+"\n" +
+" } com_amd_aparapi_test_DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" int something;\n" +
+" __global com_amd_aparapi_test_DummyOOA *dummy;\n" +
+" __global com_amd_aparapi_test_TheOtherOne *other;\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_DummyOOA__setBoolField( __global com_amd_aparapi_test_DummyOOA *this, char x){\n" +
+" this->boolField=x;\n" +
+" return;\n" +
+" }\n" +
+" char com_amd_aparapi_test_DummyOOA__isBoolField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->boolField);\n" +
+" }\n" +
+" char com_amd_aparapi_test_DummyOOA__getBoolField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->boolField);\n" +
+" }\n" +
+" void com_amd_aparapi_test_DummyOOA__setFloatField( __global com_amd_aparapi_test_DummyOOA *this, float x){\n" +
+" this->floatField=x;\n" +
+" return;\n" +
+" }\n" +
+" float com_amd_aparapi_test_DummyOOA__getFloatField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->floatField);\n" +
+" }\n" +
+" void com_amd_aparapi_test_DummyOOA__setLongField( __global com_amd_aparapi_test_DummyOOA *this, long x){\n" +
+" this->longField=x;\n" +
+" return;\n" +
+" }\n" +
+" long com_amd_aparapi_test_DummyOOA__getLongField( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->longField);\n" +
+" }\n" +
+" void com_amd_aparapi_test_TheOtherOne__setMem( __global com_amd_aparapi_test_TheOtherOne *this, int x){\n" +
+" this->mem=x;\n" +
+" return;\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(This *this){\n" +
+" return(this->something);\n" +
+" }\n" +
+" int com_amd_aparapi_test_TheOtherOne__getMem( __global com_amd_aparapi_test_TheOtherOne *this){\n" +
+" return(this->mem);\n" +
+" }\n" +
+" void com_amd_aparapi_test_DummyOOA__setMem( __global com_amd_aparapi_test_DummyOOA *this, int x){\n" +
+" this->mem=x;\n" +
+" return;\n" +
+" }\n" +
+" int com_amd_aparapi_test_DummyOOA__getMem( __global com_amd_aparapi_test_DummyOOA *this){\n" +
+" return(this->mem);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int something,\n" +
+" __global com_amd_aparapi_test_DummyOOA *dummy,\n" +
+" __global com_amd_aparapi_test_TheOtherOne *other,\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->something = something;\n" +
+" this->dummy = dummy;\n" +
+" this->other = other;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" int tmp = com_amd_aparapi_test_DummyOOA__getMem( &(this->dummy[myId]));\n" +
+" com_amd_aparapi_test_DummyOOA__setMem( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getMem( &(this->dummy[myId])) + 2));\n" +
+" com_amd_aparapi_test_DummyOOA__setMem( &(this->dummy[myId]), (com_amd_aparapi_test_TheOtherOne__getMem( &(this->other[myId])) + com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this)));\n" +
+" com_amd_aparapi_test_TheOtherOne__setMem( &(this->other[myId]), (com_amd_aparapi_test_TheOtherOne__getMem( &(this->other[myId])) + com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this)));\n" +
+" com_amd_aparapi_test_DummyOOA__setLongField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getLongField( &(this->dummy[myId])) + 2L));\n" +
+" com_amd_aparapi_test_DummyOOA__setFloatField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getFloatField( &(this->dummy[myId])) + 2.0f));\n" +
+" com_amd_aparapi_test_DummyOOA__setBoolField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getBoolField( &(this->dummy[myId])) | com_amd_aparapi_test_DummyOOA__isBoolField( &(this->dummy[myId]))));\n" +
+" this->out[myId]  = com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberGetterSetterTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberGetterSetter.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberGetterSetterTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberGetterSetter.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java
index c6877634..a8e1b3d2 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberHierarchyTest.java
@@ -18,16 +18,57 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ObjectArrayMemberHierarchyTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA_s{\n" +
+" float  floatField;\n" +
+" int  intField;\n" +
+"\n" +
+" } com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA;\n" +
+"\n" +
+" typedef struct This_s{\n" +
+" int something;\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" void com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this, float x){\n" +
+" this->floatField=x;\n" +
+" return;\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(This *this){\n" +
+" return(this->something);\n" +
+" }\n" +
+" int com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this){\n" +
+" return(this->intField);\n" +
+" }\n" +
+" __kernel void run(\n" +
+" int something,\n" +
+" __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->something = something;\n" +
+" this->dummy = dummy;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" int myId = get_global_id(0);\n" +
+" this->dummy[myId].intField=(com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( &(this->dummy[myId])) + 2) + com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(this);\n" +
+" com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( &(this->dummy[myId]), (this->dummy[myId].floatField + 2.0f));\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberHierarchyTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberHierarchy.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberHierarchyTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberHierarchy.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java
index 670bc8f5..d8be9932 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectArrayMemberNotFinalTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectArrayMemberNotFinalTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberNotFinalTest() {
         test(com.aparapi.codegen.test.ObjectArrayMemberNotFinal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectArrayMemberNotFinalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectArrayMemberNotFinal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java b/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java
index ed57657a..e3978c7d 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectRefCopyTest.java
@@ -15,19 +15,18 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectRefCopyTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ObjectRefCopyTest() {
         test(com.aparapi.codegen.test.ObjectRefCopy.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ObjectRefCopyTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectRefCopy.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java b/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java
index 8ca7c5a1..b19700dd 100644
--- a/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ObjectWithinObjectTest.java
@@ -15,19 +15,20 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ObjectWithinObjectTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
+    
     @Test
     public void ObjectWithinObjectTest() {
         test(com.aparapi.codegen.test.ObjectWithinObject.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void ObjectWithinObjectTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ObjectWithinObject.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java b/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java
index 13ccf846..8649bded 100644
--- a/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/OrAndOrPrecedenceTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class OrAndOrPrecedenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+"\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+"\n" +
+" __kernel void run(\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" char a = 1;\n" +
+" char b = 1;\n" +
+" char c = 1;\n" +
+" char d = 1;\n" +
+" char pass = 0;\n" +
+" if ((a!=0 || b!=0) && (c!=0 || d!=0)){\n" +
+" pass = 1;\n" +
+" }\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void OrAndOrPrecedenceTest() {
         test(com.aparapi.codegen.test.OrAndOrPrecedence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void OrAndOrPrecedenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.OrAndOrPrecedence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java b/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java
index 904f8856..5584ef3c 100644
--- a/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java
+++ b/src/test/java/com/aparapi/codegen/test/OverloadMethodTest.java
@@ -18,16 +18,43 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class OverloadMethodTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverloadMethod__foo(This *this, int a, int b){\n" +
+" return(min(a, b));\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverloadMethod__foo(This *this, int n){\n" +
+" return((n + 1));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_OverloadMethod__foo(this, 2) + com_amd_aparapi_test_OverloadMethod__foo(this, 2, 3);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void OverloadMethodTest() {
         test(com.aparapi.codegen.test.OverloadMethod.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void OverloadMethodTestWorksWithCaching() {
         test(com.aparapi.codegen.test.OverloadMethod.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java b/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java
index aec126be..f00ab7b0 100644
--- a/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/OverriddenKernelFieldTest.java
@@ -18,16 +18,44 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class OverriddenKernelFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+    private static final String[] expectedOpenCL = {
+    "typedef struct This_s{\n" +
+" __global int *out;\n" +
+" int passid;\n" +
+" }This;\n" +
+" int get_pass_id(This *this){\n" +
+" return this->passid;\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverriddenKernelFieldParent__foo(This *this, int n){\n" +
+" this->out[0]  = n + 1;\n" +
+" return(this->out[0]);\n" +
+" }\n" +
+" int com_amd_aparapi_test_OverriddenKernelField__foo(This *this, int n){\n" +
+" return(com_amd_aparapi_test_OverriddenKernelFieldParent__foo(this, (n + 1)));\n" +
+" }\n" +
+" __kernel void run(\n" +
+" __global int *out,\n" +
+" int passid\n" +
+" ){\n" +
+" This thisStruct;\n" +
+" This* this=&thisStruct;\n" +
+" this->out = out;\n" +
+" this->passid = passid;\n" +
+" {\n" +
+" this->out[0]  = com_amd_aparapi_test_OverriddenKernelField__foo(this, 2);\n" +
+" return;\n" +
+" }\n" +
+" }\n" +
+" "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void OverriddenKernelFieldTest() {
         test(com.aparapi.codegen.test.OverriddenKernelField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void OverriddenKernelFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.OverriddenKernelField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PlayPenTest.java b/src/test/java/com/aparapi/codegen/test/PlayPenTest.java
index 6e921b08..01c2387a 100644
--- a/src/test/java/com/aparapi/codegen/test/PlayPenTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PlayPenTest.java
@@ -18,16 +18,51 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PlayPenTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int testValue = 10;\n"
+        + " char pass = 0;\n"
+        + " if ((testValue % 2)==0 || testValue<=0 && testValue>=100 && (testValue % 4)==0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " if ((testValue<3 || testValue>5) && (testValue<2 || testValue>2) || testValue>5){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " char a = 0;\n"
+        + " char b = 0;\n"
+        + " char c = 0;\n"
+        + " char d = 0;\n"
+        + " char e = 0;\n"
+        + " char f = 0;\n"
+        + " if ((a!=0 || b!=0 && c!=0 && d!=0) && e!=0 || f!=0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PlayPenTest() {
         test(com.aparapi.codegen.test.PlayPen.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PlayPenTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PlayPen.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java
index a08cb92f..438f715a 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecArrayItemTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int a = 10;\n"
+        + " this->values[a]  = this->results[a]--;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecArrayItemTest() {
         test(com.aparapi.codegen.test.PostDecArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java b/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java
index 82990688..7328f905 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecByteTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecByteTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " char com_amd_aparapi_test_PostDecByte__incByte(This *this, char a){\n"
+        + " return(a++);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char startValue = 3;\n"
+        + " char result = com_amd_aparapi_test_PostDecByte__incByte(this, startValue--);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecByteTest() {
         test(com.aparapi.codegen.test.PostDecByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java b/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java
index 1cf61e6e..632822b2 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecLocalTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecLocalTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " if (i--==0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecLocalTest() {
         test(com.aparapi.codegen.test.PostDecLocal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecLocalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecLocal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java b/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java
index 5760f04b..817f162d 100644
--- a/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostDecPostIncTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostDecPostIncTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " int result = 0;\n"
+        + " result = i-- + i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostDecPostIncTest() {
         test(com.aparapi.codegen.test.PostDecPostInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostDecPostIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostDecPostInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java b/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java
index 1d98bc01..71da203b 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncArrayIndexAndElementTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncArrayIndexAndElementTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *array;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *array,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->array = array;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " this->array[i++]  = this->array[i] + 1;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayIndexAndElementTest() {
         test(com.aparapi.codegen.test.PostIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayIndexAndElementTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java
index 2e93a031..e232d257 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncArrayItemTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int a = 10;\n"
+        + " this->values[a]  = this->results[a]++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemTest() {
         test(com.aparapi.codegen.test.PostIncArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java b/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java
index 797fa05b..38514df0 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncByteFieldTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PostIncByteFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteFieldTest() {
         test(com.aparapi.codegen.test.PostIncByteField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncByteField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java b/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java
index 8bda1cdc..32b23769 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncByteTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncByteTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " char com_amd_aparapi_test_PostIncByte__incByte(This *this, char a){\n"
+        + " return(a++);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char startValue = 3;\n"
+        + " char result = com_amd_aparapi_test_PostIncByte__incByte(this, startValue++);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteTest() {
         test(com.aparapi.codegen.test.PostIncByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java b/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
index e30c8d63..8554bab6 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncIntFieldTest.java
@@ -15,11 +15,12 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PostIncIntFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
     @org.junit.Ignore
     @Test
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java b/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java
index 2bb23ad6..63e925d9 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncIntTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " int com_amd_aparapi_test_PostIncInt__foo(This *this, int a){\n"
+        + " return(a);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " com_amd_aparapi_test_PostIncInt__foo(this,y++);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncIntTest() {
         test(com.aparapi.codegen.test.PostIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java b/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java
index 66206406..63fef466 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncLocalStandaloneTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncLocalStandaloneTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalStandaloneTest() {
         test(com.aparapi.codegen.test.PostIncLocalStandalone.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalStandaloneTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncLocalStandalone.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java b/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java
index 56c0ad28..338d1656 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncLocalTest.java
@@ -18,16 +18,39 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncLocalTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " if (i++==0){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalTest() {
         test(com.aparapi.codegen.test.PostIncLocal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PostIncLocalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncLocal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java b/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java
index b7f09509..1795f527 100644
--- a/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PostIncLocalTwiceTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PostIncLocalTwiceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " if ((i++ + i++)==1){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void PostIncLocalTwiceTest() {
         test(com.aparapi.codegen.test.PostIncLocalTwice.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void PostIncLocalTwiceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PostIncLocalTwice.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java b/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java
index c8735552..9a160fac 100644
--- a/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreDecArrayIndexAndElementTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreDecArrayIndexAndElementTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *array;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *array,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->array = array;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " this->array[--i]  = this->array[i] - 1;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayIndexAndElementTest() {
         test(com.aparapi.codegen.test.PreDecArrayIndexAndElement.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayIndexAndElementTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreDecArrayIndexAndElement.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java
index 7e47fb3a..f5093e2e 100644
--- a/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreDecArrayItemTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreDecArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " this->values[y]  = --this->results[y];\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayItemTest() {
         test(com.aparapi.codegen.test.PreDecArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreDecArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreDecArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java b/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java
index d9db00d8..34f7b11c 100644
--- a/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreDecPostIncTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreDecPostIncTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " int result = 0;\n"
+        + " i--;\n"
+        + " result = i + i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreDecPostIncTest() {
         test(com.aparapi.codegen.test.PreDecPostInc.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreDecPostIncTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreDecPostInc.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java b/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java
index fb080c0b..25184eea 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncArrayIndexAndElementTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncArrayIndexAndElementTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *array;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *array,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->array = array;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " this->array[++i]  = this->array[i] + 1;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayIndexAndElementTest() {
         test(com.aparapi.codegen.test.PreIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayIndexAndElementTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncArrayIndexAndElement.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java b/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java
index 7b8430bb..7833f74d 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncArrayItemTest.java
@@ -18,16 +18,42 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncArrayItemTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *values;\n"
+        + " __global int *results;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *values,\n"
+        + " __global int *results,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->values = values;\n"
+        + " this->results = results;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " this->values[y]  = ++this->results[y];\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayItemTest() {
         test(com.aparapi.codegen.test.PreIncArrayItem.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncArrayItemTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncArrayItem.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java b/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java
index a583a3f8..0c689be5 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncByteFieldTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PreIncByteFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteFieldTest() {
         test(com.aparapi.codegen.test.PreIncByteField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncByteField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java b/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java
index 8e5d4a57..2bca2a98 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncByteTest.java
@@ -18,16 +18,38 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncByteTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " char com_amd_aparapi_test_PreIncByte__preIncByte(This *this, char a){\n"
+        + " a = (char )(a + 1);\n"
+        + " return(a);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char initValue = 0;\n"
+        + " char result = com_amd_aparapi_test_PreIncByte__preIncByte(this, ++initValue);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteTest() {
         test(com.aparapi.codegen.test.PreIncByte.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncByteTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncByte.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java b/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java
index bc30e352..4e174eab 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncIntFieldTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class PreIncIntFieldTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void PreIncIntFieldTest() {
         test(com.aparapi.codegen.test.PreIncIntField.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncIntFieldTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncIntField.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java b/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java
index fb08ef48..3380d148 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncIntTest.java
@@ -18,16 +18,41 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " int com_amd_aparapi_test_PreIncInt__preIncInt(This *this, int a){\n"
+        + " return(a);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int y = 2;\n"
+        + " com_amd_aparapi_test_PreIncInt__preIncInt(this,++y);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
+    
     @Test
     public void PreIncIntTest() {
         test(com.aparapi.codegen.test.PreIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void PreIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java b/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java
index 5a5eb987..bee32521 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncLocalStandaloneTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncLocalStandaloneTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalStandaloneTest() {
         test(com.aparapi.codegen.test.PreIncLocalStandalone.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalStandaloneTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncLocalStandalone.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java b/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java
index cc2a25ca..4ebbe805 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncLocalTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncLocalTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " if (i==1){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTest() {
         test(com.aparapi.codegen.test.PreIncLocal.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncLocal.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java b/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java
index 7bbbefaa..f542541a 100644
--- a/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/PreIncLocalTwiceTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class PreIncLocalTwiceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + "\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " int i = 0;\n"
+        + " i++;\n"
+        + " if ((i++ + i)==3){\n"
+        + " pass = 1;\n"
+        + " }\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTwiceTest() {
         test(com.aparapi.codegen.test.PreIncLocalTwice.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void PreIncLocalTwiceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.PreIncLocalTwice.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java b/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java
index 6c2bf359..e37330fe 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnBooleanNewArrayTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnBooleanNewArrayTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanNewArrayTest() {
         test(com.aparapi.codegen.test.ReturnBooleanNewArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanNewArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnBooleanNewArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java b/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java
index 4568c206..f1439e39 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnBooleanVarArrayTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnBooleanVarArrayTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanVarArrayTest() {
         test(com.aparapi.codegen.test.ReturnBooleanVarArray.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnBooleanVarArrayTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnBooleanVarArray.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java
index 8fab6de2..a0134a0f 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayNewTest.java
@@ -15,19 +15,20 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnByteArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
+    
     @Test
     public void ReturnByteArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnByteArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
+    
     @Test
     public void ReturnByteArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnByteArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java
index 75841058..2b83d4d7 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnByteArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnByteArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnByteArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnByteArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnByteArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnByteArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java
index 5ced42b8..9c2433f5 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnDoubleArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java
index 83738972..1517e608 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnDoubleArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnDoubleArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnDoubleArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnDoubleArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java
index 52667c04..431d54a6 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnFloatArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnFloatArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnFloatArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java
index 944908e1..48fd6b0d 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnFloatArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnFloatArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnFloatArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnFloatArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnFloatArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java
index 67d61f27..fe067d9d 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnIntArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnIntArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnIntArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java
index 22f46dce..a032b2c1 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnIntArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnIntArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnIntArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnIntArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnIntArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java
index 1494821d..b9c5c2a5 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnLongArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnLongArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnLongArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java
index 9b358a7d..f71c402d 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnLongArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnLongArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnLongArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnLongArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnLongArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java b/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java
index 34f549ed..4532b453 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnPostIncIntTest.java
@@ -18,16 +18,36 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ReturnPostIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " int com_amd_aparapi_test_ReturnPostIncInt__returnPostIncInt(This *this, int value){\n"
+        + " return(value++);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " com_amd_aparapi_test_ReturnPostIncInt__returnPostIncInt(this, 3);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ReturnPostIncIntTest() {
         test(com.aparapi.codegen.test.ReturnPostIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnPostIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnPostIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java b/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java
index ea509daf..a46ec32b 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnPreIncIntTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class ReturnPreIncIntTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " int com_amd_aparapi_test_ReturnPreIncInt__returnPreIncInt(This *this, int value){\n"
+        + " value++;\n"
+        + " return(value);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " com_amd_aparapi_test_ReturnPreIncInt__returnPreIncInt(this, 3);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void ReturnPreIncIntTest() {
         test(com.aparapi.codegen.test.ReturnPreIncInt.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnPreIncIntTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnPreIncInt.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java
index 7415307b..4b4e5f8f 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayNewTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnShortArrayNewTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayNewTest() {
         test(com.aparapi.codegen.test.ReturnShortArrayNew.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayNewTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnShortArrayNew.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java
index e02e8dc3..42bdefbb 100644
--- a/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java
+++ b/src/test/java/com/aparapi/codegen/test/ReturnShortArrayVarTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class ReturnShortArrayVarTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayVarTest() {
         test(com.aparapi.codegen.test.ReturnShortArrayVar.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void ReturnShortArrayVarTestWorksWithCaching() {
         test(com.aparapi.codegen.test.ReturnShortArrayVar.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java b/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java
index 3f168385..d48ffb0a 100644
--- a/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/RightShiftsTest.java
@@ -18,16 +18,45 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class RightShiftsTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *iout;\n"
+        + " int i1;\n"
+        + " int i2;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + "\n"
+        + " __kernel void run(\n"
+        + " __global int *iout,\n"
+        + " int i1,\n"
+        + " int i2,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->iout = iout;\n"
+        + " this->i1 = i1;\n"
+        + " this->i2 = i2;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " this->iout[1]  = this->i1 >> this->i2;\n"
+        + " this->iout[2]  = ((unsigned int)this->i1) >> this->i2;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void RightShiftsTest() {
         test(com.aparapi.codegen.test.RightShifts.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void RightShiftsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.RightShifts.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/SequenceTest.java b/src/test/java/com/aparapi/codegen/test/SequenceTest.java
index 3437d5a5..8efd40a1 100644
--- a/src/test/java/com/aparapi/codegen/test/SequenceTest.java
+++ b/src/test/java/com/aparapi/codegen/test/SequenceTest.java
@@ -18,16 +18,33 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class SequenceTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " char pass = 0;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void SequenceTest() {
         test(com.aparapi.codegen.test.Sequence.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void SequenceTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Sequence.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java b/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java
index 5e12e0b1..fdb2b4d5 100644
--- a/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java
+++ b/src/test/java/com/aparapi/codegen/test/StaticFieldStoreTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class StaticFieldStoreTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void StaticFieldStoreTest() {
         test(com.aparapi.codegen.test.StaticFieldStore.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void StaticFieldStoreTestWorksWithCaching() {
         test(com.aparapi.codegen.test.StaticFieldStore.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java b/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java
index 5540106f..5aa9af7f 100644
--- a/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java
+++ b/src/test/java/com/aparapi/codegen/test/StaticMethodCallTest.java
@@ -18,16 +18,40 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class StaticMethodCallTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " __global int *out;\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " int com_amd_aparapi_test_StaticMethodCall__add(int i, int j){\n"
+        + " return((i + j));\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " __global int *out,\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->out = out;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " this->out[0]  = com_amd_aparapi_test_StaticMethodCall__add(1, 2);\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + "\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void StaticMethodCallTest() {
         test(com.aparapi.codegen.test.StaticMethodCall.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void StaticMethodCallTestWorksWithCaching() {
         test(com.aparapi.codegen.test.StaticMethodCall.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java b/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java
index 694d8017..aa2acc22 100644
--- a/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java
+++ b/src/test/java/com/aparapi/codegen/test/SynchronizedMethodsTest.java
@@ -15,19 +15,19 @@
  */
 package com.aparapi.codegen.test;
 
+import com.aparapi.internal.exception.ClassParseException;
 import org.junit.Test;
 
 public class SynchronizedMethodsTest extends com.aparapi.codegen.CodeGenJUnitBase {
+
     private static final String[] expectedOpenCL = null;
-    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
+    private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = ClassParseException.class;
 
-    @org.junit.Ignore
     @Test
     public void SynchronizedMethodsTest() {
         test(com.aparapi.codegen.test.SynchronizedMethods.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void SynchronizedMethodsTestWorksWithCaching() {
         test(com.aparapi.codegen.test.SynchronizedMethods.class, expectedException, expectedOpenCL);
diff --git a/src/test/java/com/aparapi/codegen/test/TernaryTest.java b/src/test/java/com/aparapi/codegen/test/TernaryTest.java
index 303965c4..04ca5572 100644
--- a/src/test/java/com/aparapi/codegen/test/TernaryTest.java
+++ b/src/test/java/com/aparapi/codegen/test/TernaryTest.java
@@ -18,16 +18,37 @@ package com.aparapi.codegen.test;
 import org.junit.Test;
 
 public class TernaryTest extends com.aparapi.codegen.CodeGenJUnitBase {
-    private static final String[] expectedOpenCL = null;
+
+    private static final String[] expectedOpenCL = {
+        "typedef struct This_s{\n"
+        + " int passid;\n"
+        + " }This;\n"
+        + " int get_pass_id(This *this){\n"
+        + " return this->passid;\n"
+        + " }\n"
+        + " float com_amd_aparapi_test_Ternary__random(This *this){\n"
+        + " return(0.1f);\n"
+        + " }\n"
+        + " __kernel void run(\n"
+        + " int passid\n"
+        + " ){\n"
+        + " This thisStruct;\n"
+        + " This* this=&thisStruct;\n"
+        + " this->passid = passid;\n"
+        + " {\n"
+        + " int count = (com_amd_aparapi_test_Ternary__random(this)>0.5f)?1:-1;\n"
+        + " int foo = 3;\n"
+        + " return;\n"
+        + " }\n"
+        + " }\n"
+        + " "};
     private static final Class<? extends com.aparapi.internal.exception.AparapiException> expectedException = null;
 
-    @org.junit.Ignore
     @Test
     public void TernaryTest() {
         test(com.aparapi.codegen.test.Ternary.class, expectedException, expectedOpenCL);
     }
 
-    @org.junit.Ignore
     @Test
     public void TernaryTestWorksWithCaching() {
         test(com.aparapi.codegen.test.Ternary.class, expectedException, expectedOpenCL);
-- 
GitLab