diff options
14 files changed, 16 insertions, 391 deletions
diff --git a/make/build-junit.xml b/make/build-junit.xml index b28dce1..3a6f66e 100644 --- a/make/build-junit.xml +++ b/make/build-junit.xml @@ -22,9 +22,8 @@ <property name="make" value="." /> <property name="test.base.dir" value="${gluegen.root}/src/junit" /> - <property name="test.junit.rel" value="com/jogamp/gluegen/test/junit" /> - <property name="test.junit.dir" value="${test.base.dir}/${test.junit.rel}" /> - <property name="test.junit.generation.rel" value="${test.junit.rel}/generation" /> + <property name="test.junit.rel" value="com/jogamp" /> + <property name="test.junit.generation.rel" value="${test.junit.rel}/gluegen/test/junit/generation" /> <property name="test.junit.generation.dir" value="${test.base.dir}/${test.junit.generation.rel}" /> <property name="test.dir" value="${gluegen.root}/${rootrel.build}/test"/> @@ -64,19 +63,18 @@ <path id="junit.compile.classpath"> <pathelement location="${junit.jar}" /> - <pathelement location="${gluegen-rt.jar}" /> + <pathelement location="${gluegen.jar}" /> </path> <path id="junit.run.classpath"> <pathelement location="${junit.jar}" /> - <pathelement location="${gluegen-rt.jar}" /> + <pathelement location="${gluegen.jar}" /> <pathelement location="${gluegen-test.jar}" /> </path> <property name="stub.includes.dir" value="stub_includes" /> <!-- NOTE: this MUST be relative for FileSet --> <echo message="test.base.dir: ${test.base.dir} "/> - <echo message="test.junit.dir: ${test.junit.dir} "/> <echo message="test.junit.generation.dir: ${test.junit.generation.dir} "/> <echo message="test.dir: ${test.dir} "/> <echo message="results: ${results} "/> @@ -180,12 +178,18 @@ </target> <target name="junit.compile" depends="junit.compile.check" unless="junit.compile.skip"> + <mkdir dir="${build}/test/build/classes"/> <antcall target="java.generate" inheritRefs="true"/> <antcall target="java.build" inheritRefs="true"/> <antcall target="native.build" inheritRefs="true"/> </target> <target name="junit.run" depends="init,gluegen.cpptasks.detect.os"> + <delete quiet="true"> + <fileset dir="${build}/test/results" includes="**"/> + </delete> + <mkdir dir="${build}/test/results"/> + <!-- Use absolute path --> <property name="gluegen.lib.abs" location="${gluegen.lib}" /> <property name="build_t.lib.abs" location="${build_t.lib}" /> @@ -325,7 +329,6 @@ <param name="src" value="${build_t.lib}/libBindingtest1p1.dylib" /> <param name="dest" value="${build_t.lib}/libBindingtest1p1.jnilib" /> </antcall> - </target> <!-- this is a dynamic lookup binding to the test1 implementation --> diff --git a/make/build.xml b/make/build.xml index 2241ef2..c0ce8cd 100644 --- a/make/build.xml +++ b/make/build.xml @@ -712,46 +712,11 @@ <echo message='gluegen.build.commit=${gluegen.build.commit}${line.separator}' file="${build}/artifact.properties" append="true"/> </target> - <target name="junit.compile" depends="init, gluegen.cpptasks.detect.os"> - <mkdir dir="${build}/test/build/classes"/> - - <javac destdir="${build}/test/build/classes" srcdir="${gluegen.root}/test/junit" source="1.5" failonerror="false" - debug="true" debuglevel="lines,vars,source" includeAntRuntime="false" - excludes="com/jogamp/gluegen/StructValidator.java"> - <classpath path="${junit.jar}:${build}/classes:${build}/test/gensrc/java:${tools.jar}:${ant.core.lib}"/> - </javac> - + <target name="junit.compile" depends="init"> <ant antfile="build-junit.xml" target="junit.compile"/> </target> <target name="junit.run" depends="junit.compile"> - <mkdir dir="${build}/test/results"/> - <delete quiet="true"> - <fileset dir="${build}/test/results" includes="**"/> - </delete> - - <junit forkmode="once" showoutput="true" fork="true" includeAntRuntime="true"> - <env key="${system.env.library.path}" path="${gluegen.lib.dir}${path.separator}${build}/test/build/natives"/> - <jvmarg value="-Djava.library.path=${gluegen.lib.dir}${path.separator}${build}/test/build/natives"/> - <jvmarg value="-Drootrel.build=${rootrel.build}"/> - <jvmarg value="-Dos.arch=${os.arch}"/> - <jvmarg value="-Dgluegen.user.compiler.file=${gluegen.user.compiler.file}"/> - <batchtest todir="${build}/test/results"> - <fileset dir="${build}/test/build/classes"> - <include name="com/jogamp/gluegen/**Test*"/> - <include name="com/jogamp/common/nio/**Test*"/> - <include name="com/jogamp/common/util/**Test*"/> - <include name="com/jogamp/common/util/locks/**Test*"/> - <exclude name="**/*$$*"/> - </fileset> - <formatter usefile="false" type="plain"/> - <formatter usefile="true" type="xml"/> - </batchtest> - <classpath> - <path path="${build}/test/build/classes:${build}/test/gensrc/java:${build}/gluegen-rt.jar:${build}/gluegen.jar:${antlr.jar}:${junit.jar}:${tools.jar}:${ant.core.lib}"/> - </classpath> - </junit> - <ant antfile="build-junit.xml" target="junit.run"/> </target> diff --git a/test/junit/com/jogamp/common/nio/BuffersTest.java b/src/junit/com/jogamp/common/nio/BuffersTest.java index 0b72cd4..0b72cd4 100644 --- a/test/junit/com/jogamp/common/nio/BuffersTest.java +++ b/src/junit/com/jogamp/common/nio/BuffersTest.java diff --git a/src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java b/src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java index 1cbc6a6..7837bc4 100644 --- a/src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/BaseClass.java @@ -32,23 +32,11 @@ import com.jogamp.common.nio.Buffers; import com.jogamp.common.nio.PointerBuffer; import com.jogamp.common.nio.Int64Buffer; import com.jogamp.common.os.Platform; -import java.nio.*; -import java.io.File; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.net.URISyntaxException; import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.util.logging.Level; -import java.util.logging.Logger; +import java.nio.IntBuffer; import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import static java.lang.System.*; -import static com.jogamp.gluegen.test.junit.generation.BuildEnvironment.*; /** * @author Michael Bien diff --git a/test/junit/com/jogamp/gluegen/PCPPTest.java b/src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java index b86116e..c4c7e56 100644 --- a/test/junit/com/jogamp/gluegen/PCPPTest.java +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java @@ -26,7 +26,7 @@ * or implied, of JogAmp Community. */ -package com.jogamp.gluegen; +package com.jogamp.gluegen.test.junit.generation; import com.jogamp.gluegen.pcpp.PCPP; import java.io.BufferedReader; @@ -40,7 +40,7 @@ import static org.junit.Assert.*; /** * serves mainly as entry point for debugging purposes. - * @author Michael Bien + * @author Sven Gothel, Michael Bien */ public class PCPPTest { @@ -52,8 +52,7 @@ public class PCPPTest { pp.setOut(output); String filename = "pcpptest.h"; - String filepath = BuildUtil.path + "/" + filename; - + String filepath = BuildEnvironment.gluegenRoot + "/src/junit/com/jogamp/gluegen/test/junit/generation/" + filename ; pp.run(new BufferedReader(new FileReader(filepath)), filename); String expected = "# 1 \"pcpptest.h\""+ diff --git a/src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java b/src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java index 41c65a5..5b6ac01 100644 --- a/src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/Test1p1JavaEmitter.java @@ -30,25 +30,9 @@ package com.jogamp.gluegen.test.junit.generation; import com.jogamp.gluegen.test.junit.generation.impl.Bindingtest1p1Impl; -import com.jogamp.common.nio.Buffers; -import com.jogamp.common.nio.PointerBuffer; -import java.nio.*; -import java.io.File; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.net.URISyntaxException; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import static java.lang.System.*; -import static com.jogamp.gluegen.test.junit.generation.BuildEnvironment.*; /** * @author Michael Bien diff --git a/test/junit/com/jogamp/gluegen/pcpptest.h b/src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h index e9ba181..e9ba181 100644 --- a/test/junit/com/jogamp/gluegen/pcpptest.h +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h diff --git a/src/junit/com/jogamp/gluegen/test/junit/generation/test1-gluegen.cfg b/src/junit/com/jogamp/gluegen/test/junit/generation/test1-gluegen.cfg index bc8840a..197b081 100644 --- a/src/junit/com/jogamp/gluegen/test/junit/generation/test1-gluegen.cfg +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/test1-gluegen.cfg @@ -1,4 +1,5 @@ Package com.jogamp.gluegen.test.junit.generation +Style AllStatic JavaClass Bindingtest1 Style InterfaceOnly JavaOutputDir classes diff --git a/test/junit/com/jogamp/gluegen/BasicProcAddressEmitterTest.java b/test/junit/com/jogamp/gluegen/BasicProcAddressEmitterTest.java deleted file mode 100644 index 81a1489..0000000 --- a/test/junit/com/jogamp/gluegen/BasicProcAddressEmitterTest.java +++ /dev/null @@ -1,97 +0,0 @@ -/** - * Copyright 2010 JogAmp Community. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of JogAmp Community. - */ - -package com.jogamp.gluegen; - -import com.jogamp.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.jogamp.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", - "fancyArrayTest")); - - for (Field field : fields) { - System.out.println("address field: "+field); - - String function = field.getName().substring("_addressof_".length()); - assertTrue("unexpected field: '"+function+"'",expected.contains(function)); - } - - } - - @AfterClass - public static void tearDown() { -// cleanGeneratedFiles(); - } - -} diff --git a/test/junit/com/jogamp/gluegen/BasicTest.java b/test/junit/com/jogamp/gluegen/BasicTest.java deleted file mode 100644 index 38bb7f9..0000000 --- a/test/junit/com/jogamp/gluegen/BasicTest.java +++ /dev/null @@ -1,143 +0,0 @@ -/** - * Copyright 2010 JogAmp Community. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of JogAmp Community. - */ - -package com.jogamp.gluegen; - -import com.jogamp.common.nio.Buffers; -import com.jogamp.common.nio.PointerBuffer; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import org.junit.AfterClass; -import org.junit.Test; -import static org.junit.Assert.*; -import static java.lang.System.*; -import static com.jogamp.gluegen.BuildUtil.*; - -/** - * - * @author Michael Bien - */ -public class BasicTest { - - @Test - public void generateBindingTest() { - generate("test"); - } - - /** - * 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 bindingTest() throws Exception { - - // String nativesPath = testOutput + "/build/natives"; - // System.load(nativesPath + "/librofl.so"); - System.loadLibrary("rofl"); - - Class<?> clazz = Class.forName("test.BindingTest"); - - assertEquals((long)0xFFFFFFFF, clazz.getDeclaredField("GL_INVALID_INDEX").get(null)); - assertEquals(-0.5f, clazz.getDeclaredField("AL_FLANGER_DEFAULT_FEEDBACK").get(null)); - - // TODO fix Exception: ...Caused by: java.lang.UnsatisfiedLinkError: test.BindingTest.arrayTest0(JLjava/lang/Object;I)I - /* - // test values - ByteBuffer dbb = Buffers.newDirectByteBuffer(32); - ByteBuffer bb = ByteBuffer.allocate(32).order(ByteOrder.nativeOrder()); - - PointerBuffer dpb = PointerBuffer.allocateDirect(32); - PointerBuffer pb = PointerBuffer.allocate(32); - - long[] array = new long[] {1,2,3,4,5,6,7,8,9}; - int offset = 0; - long id = 42; - - - // invoke everything public - Object bindingTest = clazz.newInstance(); - Method[] methods = clazz.getDeclaredMethods(); - - for (Method method : methods) { - - // prepare method parameters - Class<?>[] paramTypes = method.getParameterTypes(); - Object[] paramInstances = new Object[paramTypes.length]; - - for (int i = 0; i < paramTypes.length; i++) { - Class<?> paramType = paramTypes[i]; - if(paramType.isInstance(dbb)) { - paramInstances[i] = dbb; - }else if(paramType.isInstance(bb)) { - paramInstances[i] = bb; - }else if(paramType.isInstance(dpb)) { - paramInstances[i] = dpb; - }else if(paramType.isInstance(pb)) { - paramInstances[i] = pb; - }else if(paramType.isPrimitive()) { // TODO primitive types - paramInstances[i] = offset; - }else if(paramType.isArray()) { // TODO array types - paramInstances[i] = array; - } - } - - out.println("invoking: "+method); - out.println("with params: "); - for (Object param : paramInstances) - out.print(param+", "); - out.println(); - - Object result = method.invoke(bindingTest, paramInstances); - out.println("result: "+result); - out.println("success"); - } - */ - } - - @AfterClass - public static void tearDown() { -// cleanGeneratedFiles(); - } - -} diff --git a/test/junit/com/jogamp/gluegen/dyntest.cfg b/test/junit/com/jogamp/gluegen/dyntest.cfg deleted file mode 100644 index 60b8764..0000000 --- a/test/junit/com/jogamp/gluegen/dyntest.cfg +++ /dev/null @@ -1,25 +0,0 @@ -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 diff --git a/test/junit/com/jogamp/gluegen/test.c b/test/junit/com/jogamp/gluegen/test.c deleted file mode 100644 index c511a53..0000000 --- a/test/junit/com/jogamp/gluegen/test.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "test.h" - -int arrayTest(long context, foo * array) { - return 42; -} - -int bufferTest(void * object) { - return 42; -} - -void pbTest(size_t * object) { -} - -int manyBuffersTest(void * object1, void * object2, void * object3, void * object4, void * object5) { - return 42; -} - -int mixedTest(long context, void * object, foo * array){ - return 42; -} - -int doubleTest(long context, void * object1, foo * array1, void * object2, foo * array2) { - return 42; -} diff --git a/test/junit/com/jogamp/gluegen/test.cfg b/test/junit/com/jogamp/gluegen/test.cfg deleted file mode 100644 index a2ac567..0000000 --- a/test/junit/com/jogamp/gluegen/test.cfg +++ /dev/null @@ -1,9 +0,0 @@ -Package test -Style AllStatic -JavaClass BindingTest -JavaOutputDir java -NativeOutputDir native - -CustomCCode #include "test.h" - -Import com.jogamp.common.nio.*
\ No newline at end of file diff --git a/test/junit/com/jogamp/gluegen/test.h b/test/junit/com/jogamp/gluegen/test.h deleted file mode 100644 index cef2b7e..0000000 --- a/test/junit/com/jogamp/gluegen/test.h +++ /dev/null @@ -1,17 +0,0 @@ -#define GL_INVALID_INDEX 0xFFFFFFFFu -#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f) - -typedef unsigned long foo; -typedef unsigned long size_t; - -int arrayTest(long context, foo * array ); - -int bufferTest(void * object); - -void pbTest(size_t * object); - -int manyBuffersTest(void * object1, void * object2, void * object3, void * object4, void * object5); - -int mixedTest(long context, void * object, foo * array ); - -int doubleTest(long context, void * object1, foo * array1, void * object2, foo * array2 ); |