diff options
author | Michael Bien <[email protected]> | 2010-06-18 23:24:03 +0200 |
---|---|---|
committer | Michael Bien <[email protected]> | 2010-06-18 23:24:03 +0200 |
commit | 29072eee5784035d1284d3b9625450681fca25b3 (patch) | |
tree | 87d9892adcf3d60c888f12b9d0d1616f17ce75ff /test | |
parent | e4b946b3140fa5931650dfeb4ea76ac1ebd90452 (diff) |
added BasicProcAddressEmitterTest testing generation of ProcAddressTable and method RenameJavaMethod property.
Diffstat (limited to 'test')
-rw-r--r-- | test/junit/com/sun/gluegen/BasicProcAddressEmitterTest.java | 68 | ||||
-rw-r--r-- | test/junit/com/sun/gluegen/BuildUtil.java | 14 | ||||
-rw-r--r-- | test/junit/com/sun/gluegen/dyntest.cfg | 25 |
3 files changed, 104 insertions, 3 deletions
diff --git a/test/junit/com/sun/gluegen/BasicProcAddressEmitterTest.java b/test/junit/com/sun/gluegen/BasicProcAddressEmitterTest.java new file mode 100644 index 0000000..cdd8bd0 --- /dev/null +++ b/test/junit/com/sun/gluegen/BasicProcAddressEmitterTest.java @@ -0,0 +1,68 @@ +package com.sun.gluegen; + +import com.sun.gluegen.procaddress.ProcAddressEmitter; +import java.lang.reflect.Field; +import java.util.HashSet; +import java.util.Set; +import org.junit.AfterClass; +import org.junit.Test; +import static java.util.Arrays.*; +import static com.sun.gluegen.BuildUtil.*; +import static org.junit.Assert.*; + +/** + * Basic test using ProcAddressEmitter. + * @author Michael Bien + */ +public class BasicProcAddressEmitterTest { + + @Test + public void generateBindingTest() { + generate("dyntest", "test", ProcAddressEmitter.class.getName()); + } + + /** + * fails if ant script fails (which is a good thing). + * executeTarget throws RuntimeException on failure + */ + @Test + public void compileJavaTest() { + compileJava(); + } + + /* + * fails if ant script fails (which is a good thing) + * executeTarget throws RuntimeException on failure + */ + @Test + public void compileNativesTest() { + compileNatives(); + } + + @Test + public void renameTest() throws Exception { + + Class<?> binding = Class.forName("test.DynBindingTest"); + Class<?> table = Class.forName("test.Table"); + + Field[] fields = table.getDeclaredFields(); + + + Set<String> expected = new HashSet<String>( + asList("arrayTest", "bufferTest", "pbTest", "manyBuffersTest", "mixedTest", "doubleTest")); + + for (Field field : fields) { + System.out.println("address field: "+field); + + String function = field.getName().substring("_addressoff_".length()-1); + assertTrue("unexpected field: '"+function+"'",expected.contains(function)); + } + + } + + @AfterClass + public static void tearDown() { +// cleanGeneratedFiles(); + } + +} diff --git a/test/junit/com/sun/gluegen/BuildUtil.java b/test/junit/com/sun/gluegen/BuildUtil.java index 35dc0c1..0658893 100644 --- a/test/junit/com/sun/gluegen/BuildUtil.java +++ b/test/junit/com/sun/gluegen/BuildUtil.java @@ -109,14 +109,22 @@ public final class BuildUtil { } public static void generate(String bindingName) { + generate(bindingName, JavaEmitter.class.getName()); +// generate(bindingName, DebugEmitter.class.getName()); + } + + public static void generate(String bindingName, String emitter) { + generate(bindingName, bindingName, emitter); + } + public static void generate(String bindingName, String header, String emitter) { - out.println("generate binding: " + bindingName); + out.println("generate binding to '" + bindingName+"' using '"+emitter+"'"); GlueGen.main( "-I"+path, "-O"+testOutput+"/gensrc", - // "-Ecom.sun.gluegen.DebugEmitter", + "-E"+emitter, "-C"+path+"/"+bindingName+".cfg", - path+"/"+bindingName+".h" ); + path+"/"+header+".h" ); out.println("done"); } diff --git a/test/junit/com/sun/gluegen/dyntest.cfg b/test/junit/com/sun/gluegen/dyntest.cfg new file mode 100644 index 0000000..60b8764 --- /dev/null +++ b/test/junit/com/sun/gluegen/dyntest.cfg @@ -0,0 +1,25 @@ +Package test +Style AllStatic +JavaClass DynBindingTest +JavaOutputDir java +NativeOutputDir native + +CustomCCode #include "test.h" + +Import com.jogamp.common.nio.* + + +EmitProcAddressTable true +ProcAddressTableClassName Table +GetProcAddressTableExpr table +ProcAddressNameExpr $UpperCase(arg) + +ForceProcAddressGen __ALL__ + +CustomJavaCode DynBindingTest private final static Table table; +CustomJavaCode DynBindingTest static { +CustomJavaCode DynBindingTest table = new Table(); +CustomJavaCode DynBindingTest //table.reset(); +CustomJavaCode DynBindingTest } + +RenameJavaMethod arrayTest fancyArrayTest
\ No newline at end of file |