From 4cf443356a1eb7f0c303270eaa3ecca2d88e8138 Mon Sep 17 00:00:00 2001 From: Eric Caspole <eric.caspole@amd.com> Date: Fri, 9 Nov 2012 18:27:00 +0000 Subject: [PATCH] Updated test to use currently legal operations, not accessing data members in enclosing class --- .../CallStaticFromAnonymousKernel.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) 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 3ac2dedd..3f090dc0 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(); } } - - -- GitLab