diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java index 3ac2dedd24091b3b47ae21c8924ed5f1183d5928..3f090dc020c8cf02cf56f3e475b74032fcde2d4e 100644 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java +++ b/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java @@ -14,42 +14,47 @@ public class CallStaticFromAnonymousKernel { static final int size = 256; - final int[] values = new int[size]; - final int[] results = new int[size]; - - public CallStaticFromAnonymousKernel() { - for(int i=0; i<size; i++) { - values[i] = i; - results[i] = 0; - } - } - + // This method is a static target in the anonymous + // kernel's containing class public static int fooBar(int i) { return i + 20; } @Test public void test() { + final int[] values = new int[size]; + final int[] results = new int[size]; + + for(int i=0; i<size; i++) { + values[i] = i; + results[i] = 0; + } + Kernel kernel = new Kernel() { + // Verify codegen for resolving static call from run's callees public int doodoo(int i) { return AnotherClass.foo(i); } @Override public void run() { int gid = getGlobalId(); - results[gid] = fooBar(values[gid]) + doodoo(gid); + + // Call a static in the containing class and call a kernel method + // that calls a static in another class + results[gid] = CallStaticFromAnonymousKernel.fooBar(values[gid]) + doodoo(gid); } }; kernel.execute(size); - + assertTrue("ran on GPU", kernel.getExecutionMode()==Kernel.EXECUTION_MODE.GPU); for(int i=0; i<size; i++) { - System.out.println(results[i] + " == " + fooBar(values[i]) + AnotherClass.foo(i)); assertTrue( "results == fooBar", results[i] == (fooBar(values[i]) + AnotherClass.foo(i))); } + } + public static void main(String args[]) { + CallStaticFromAnonymousKernel k = new CallStaticFromAnonymousKernel(); + k.test(); } } - -