1010import static org .bridj .Pointer .*;
1111import com .nativelibs4java .test .MiscTestUtils ;
1212import java .util .List ;
13+ import org .junit .Ignore ;
1314import org .junit .runners .Parameterized ;
1415
1516/**
16- *
1717 * @author Kazo Csaba
1818 */
1919@ SuppressWarnings ("unchecked" )
@@ -64,4 +64,21 @@ public void simpleTest() throws CLBuildException {
6464 for (int i =0 ; i <4 ; i ++)
6565 assertEquals (source .get (i ), target .get (i ));
6666 }
67+
68+ /**
69+ * Test from issue https://github.com/ochafik/nativelibs4java/issues/453
70+ */
71+ @ Test
72+ public void cachingTest () {
73+ CLContext clcontext = JavaCL .createBestContext ();
74+ CLProgram ap = clcontext .createProgram ("__kernel void add(int a, int b, __global int* c) { *c = a + b; }" );
75+ ap .createKernel ("add" );
76+ Map <CLDevice , byte []> addBins = ap .getBinaries ();
77+ Map <CLDevice , byte []> subBins = clcontext .createProgram ("__kernel void sub(int a, int b, __global int* c) { *c = a - b; }" ).getBinaries ();
78+ CLProgram ap2 = clcontext .createProgram (addBins , "__kernel void add(int a, int b, __global int* c) { *c = a + b; }" );
79+ ap2 .createKernel ("add" );
80+ CLProgram sp2 = clcontext .createProgram (subBins , "__kernel void sub(int a, int b, __global int* c) { *c = a - b; }" );
81+ sp2 .setCached (true ); // set to false and it works
82+ sp2 .createKernel ("sub" );
83+ }
6784}
0 commit comments