From 06066237533e8c8de93b7878daded9a3c28a3545 Mon Sep 17 00:00:00 2001 From: Sven Gothel <sgothel@jausoft.com> Date: Thu, 25 Nov 2010 05:15:35 +0100 Subject: Disabled Struct* Tests (not working on Windows .. platform; Moved BuffersTest and PCPP to the proper src/junit folder. All junit tests are now handled by build-junit.xml --- make/build-junit.xml | 17 ++- make/build.xml | 37 +----- src/junit/com/jogamp/common/nio/BuffersTest.java | 57 ++++++++ .../gluegen/test/junit/generation/BaseClass.java | 14 +- .../gluegen/test/junit/generation/PCPPTest.java | 112 ++++++++++++++++ .../test/junit/generation/Test1p1JavaEmitter.java | 16 --- .../gluegen/test/junit/generation/pcpptest.h | 135 +++++++++++++++++++ .../test/junit/generation/test1-gluegen.cfg | 1 + test/junit/com/jogamp/common/nio/BuffersTest.java | 57 -------- .../gluegen/BasicProcAddressEmitterTest.java | 97 -------------- test/junit/com/jogamp/gluegen/BasicTest.java | 143 --------------------- test/junit/com/jogamp/gluegen/PCPPTest.java | 113 ---------------- test/junit/com/jogamp/gluegen/dyntest.cfg | 25 ---- test/junit/com/jogamp/gluegen/pcpptest.h | 135 ------------------- test/junit/com/jogamp/gluegen/test.c | 24 ---- test/junit/com/jogamp/gluegen/test.cfg | 9 -- test/junit/com/jogamp/gluegen/test.h | 17 --- 17 files changed, 317 insertions(+), 692 deletions(-) create mode 100644 src/junit/com/jogamp/common/nio/BuffersTest.java create mode 100644 src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java create mode 100644 src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h delete mode 100644 test/junit/com/jogamp/common/nio/BuffersTest.java delete mode 100644 test/junit/com/jogamp/gluegen/BasicProcAddressEmitterTest.java delete mode 100644 test/junit/com/jogamp/gluegen/BasicTest.java delete mode 100644 test/junit/com/jogamp/gluegen/PCPPTest.java delete mode 100644 test/junit/com/jogamp/gluegen/dyntest.cfg delete mode 100644 test/junit/com/jogamp/gluegen/pcpptest.h delete mode 100644 test/junit/com/jogamp/gluegen/test.c delete mode 100644 test/junit/com/jogamp/gluegen/test.cfg delete mode 100644 test/junit/com/jogamp/gluegen/test.h 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/src/junit/com/jogamp/common/nio/BuffersTest.java b/src/junit/com/jogamp/common/nio/BuffersTest.java new file mode 100644 index 0000000..0b72cd4 --- /dev/null +++ b/src/junit/com/jogamp/common/nio/BuffersTest.java @@ -0,0 +1,57 @@ +/** + * 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. + */ + +/* + * Created on Sunday, July 04 2010 20:00 + */ +package com.jogamp.common.nio; + +import java.nio.IntBuffer; +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * @author Michael Bien + */ +public class BuffersTest { + + @Test + public void slice() { + IntBuffer buffer = Buffers.newDirectIntBuffer(6); + buffer.put(new int[]{1,2,3,4,5,6}).rewind(); + + IntBuffer threefour = (IntBuffer)Buffers.slice(buffer, 2, 2); + + assertEquals(3, threefour.get(0)); + assertEquals(4, threefour.get(1)); + assertEquals(2, threefour.capacity()); + + } + +} 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/src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java b/src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java new file mode 100644 index 0000000..c4c7e56 --- /dev/null +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/PCPPTest.java @@ -0,0 +1,112 @@ +/** + * 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.test.junit.generation; + +import com.jogamp.gluegen.pcpp.PCPP; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.Collections; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * serves mainly as entry point for debugging purposes. + * @author Sven Gothel, Michael Bien + */ +public class PCPPTest { + + @Test + public void pcppMacroDefinitionTest() throws FileNotFoundException, IOException { + + PCPP pp = new PCPP(Collections.<String>emptyList(), false, false); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + pp.setOut(output); + + String filename = "pcpptest.h"; + 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\""+ + "# define CL_SCHAR_MIN (-127-1)"+ + "# define __YES__ 1"+ + "# 16 \"pcpptest.h\""+ + "# 26 \"pcpptest.h\""+ + "# 36 \"pcpptest.h\""+ + " cl_char GOOD_A;"+ + " int GOOD_B;"+ + " int GOOD_C;"+ + "# 40 \"pcpptest.h\""+ + "#54\"pcpptest.h\""+ + " int TEST_D_GOOD;"+ + "#60\"pcpptest.h\""+ + "#70\"pcpptest.h\""+ + "#77\"pcpptest.h\""+ + "#105\"pcpptest.h\""+ + "#123\"pcpptest.h\""+ + " int GOOD_F_1;"+ + " int GOOD_F_2;"+ + "#126\"pcpptest.h\""+ + " int GOOD_G;"+ + "#128\"pcpptest.h\""+ + "#130\"pcpptest.h\""+ + "#134\"pcpptest.h\""+ + "#136\"pcpptest.h\""; + + + output.flush(); + String result = output.toString(); + output.close(); + + System.err.println("Expected: "); + System.err.println("-------------------------------"); + System.err.println(killWhitespace(expected)); + System.err.println("-------------------------------"); + System.err.println(); + System.err.println("Result: "); + System.err.println("-------------------------------"); + System.err.println(killWhitespace(result)); + System.err.println("-------------------------------"); + System.err.println(); + + assertEquals(killWhitespace(expected), killWhitespace(result)); + + } + + private String killWhitespace(String a) { + return a.replaceAll("\\p{javaWhitespace}+", ""); + } + + public static void main(String args[]) throws IOException { + String tstname = PCPPTest.class.getName(); + org.junit.runner.JUnitCore.main(tstname); + } +} 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/src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h b/src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h new file mode 100644 index 0000000..e9ba181 --- /dev/null +++ b/src/junit/com/jogamp/gluegen/test/junit/generation/pcpptest.h @@ -0,0 +1,135 @@ + +#define CL_SCHAR_MIN (-127-1) + +#define __YES__ 1 + +#if defined( __YES__ ) + #define TEST_A(_x) GOOD_A +#elif defined( _WIN32) && (_MSC_VER) + #define TEST_A(_x) ERR_A_1 +#elif defined( __unix__) || ( __sun__ ) + #define TEST_A(_x) ERR_A_2 +#else + #define TEST_A(_x) ERR_A_3 +#endif + +#if defined( __NO__ ) + #define TEST_B ERR_B_1 +#elif defined( __YES__) + #define TEST_B GOOD_B +#elif defined( __unix__) || ( __sun__ ) + #define TEST_B ERR_B_2 +#else + #define TEST_B ERR_B_3 +#endif + +#if defined( __NO__ ) + #define TEST_C ERR_C_1 +#elif defined( __NO__ ) + #define TEST_C ERR_C_2 +#elif defined( __unix__) || ( __sun__ ) + #define TEST_C ERR_C_3 +#else + #define TEST_C GOOD_C +#endif + +cl_char TEST_A(2); +int TEST_B; +int TEST_C; + +#ifndef __NO__ + #ifdef __YES__ + #ifdef CGDLL_EXPORTS + #define ERR_D_1 + #elif defined (CG_LIB) + #define ERR_D_2 + #else + #define GOOD_D + #endif + #else + #define ERR_D_3 + #endif +#endif + +#ifdef GOOD_D + int TEST_D_GOOD; +#elif + int TEST_D_ERROR; +#endif + +#if (defined(__NO__) && defined(__NOPE__)) + #define TEST_E_VAL ((long) 0x7FFFFFFFFFFFFFFFLL) +#else + #define TEST_E_VAL ((long) 0x7FFFFFFFFFFFFFFFLL) +#endif + +/*** + ** STD API file .. + */ + +#ifndef __test_h_ +#define __test_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined( __NANA__ ) + #if defined( __MINGW64__ ) + #include <cant_find_file_a.h> + #elif defined( __NONO__ ) + #include <cant_find_file_b.h> + #else + #include <cant_find_file_c.h> + #endif + #if defined( __GNUC__ ) + #include <cant_find_file_d.h> + #else + #include <cant_find_file_e.h> + #endif +#else + #if defined( __MINGW64__ ) + #include <cant_find_file_a.h> + #elif defined( __NONO__) + #include <cant_find_file_b.h> + #else + #define TEST_F_VAL1 GOOD_F_1 + #endif + #if defined( __GNUC__ ) + #include <cant_find_file_d.h> + #else + #define TEST_F_VAL2 GOOD_F_2 + #endif +#endif + +#if defined( __YES__ ) + #if defined( __NONO__) + #include <cant_find_file_a.h> + #elif defined( __YES__) + #define TEST_G_VAL GOOD_G + #else + #include <cant_find_file_b.h> + #endif +#else + #if defined( __MINGW64__ ) + #include <cant_find_file_a.h> + #elif defined( __NONO__) + #include <cant_find_file_b.h> + #else + #include <cant_find_file_c.h> + #endif +#endif + +int TEST_F_VAL1; +int TEST_F_VAL2; + +int TEST_G_VAL; + +#warning "Test warning with quotes - they must have quotes" + +#ifdef __cplusplus +} +#endif + +#endif /* __test_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/common/nio/BuffersTest.java b/test/junit/com/jogamp/common/nio/BuffersTest.java deleted file mode 100644 index 0b72cd4..0000000 --- a/test/junit/com/jogamp/common/nio/BuffersTest.java +++ /dev/null @@ -1,57 +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. - */ - -/* - * Created on Sunday, July 04 2010 20:00 - */ -package com.jogamp.common.nio; - -import java.nio.IntBuffer; -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * @author Michael Bien - */ -public class BuffersTest { - - @Test - public void slice() { - IntBuffer buffer = Buffers.newDirectIntBuffer(6); - buffer.put(new int[]{1,2,3,4,5,6}).rewind(); - - IntBuffer threefour = (IntBuffer)Buffers.slice(buffer, 2, 2); - - assertEquals(3, threefour.get(0)); - assertEquals(4, threefour.get(1)); - assertEquals(2, threefour.capacity()); - - } - -} 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/PCPPTest.java b/test/junit/com/jogamp/gluegen/PCPPTest.java deleted file mode 100644 index b86116e..0000000 --- a/test/junit/com/jogamp/gluegen/PCPPTest.java +++ /dev/null @@ -1,113 +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.pcpp.PCPP; -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.util.Collections; -import org.junit.Test; -import static org.junit.Assert.*; - -/** - * serves mainly as entry point for debugging purposes. - * @author Michael Bien - */ -public class PCPPTest { - - @Test - public void pcppMacroDefinitionTest() throws FileNotFoundException, IOException { - - PCPP pp = new PCPP(Collections.<String>emptyList(), false, false); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - pp.setOut(output); - - String filename = "pcpptest.h"; - String filepath = BuildUtil.path + "/" + filename; - - pp.run(new BufferedReader(new FileReader(filepath)), filename); - - String expected = "# 1 \"pcpptest.h\""+ - "# define CL_SCHAR_MIN (-127-1)"+ - "# define __YES__ 1"+ - "# 16 \"pcpptest.h\""+ - "# 26 \"pcpptest.h\""+ - "# 36 \"pcpptest.h\""+ - " cl_char GOOD_A;"+ - " int GOOD_B;"+ - " int GOOD_C;"+ - "# 40 \"pcpptest.h\""+ - "#54\"pcpptest.h\""+ - " int TEST_D_GOOD;"+ - "#60\"pcpptest.h\""+ - "#70\"pcpptest.h\""+ - "#77\"pcpptest.h\""+ - "#105\"pcpptest.h\""+ - "#123\"pcpptest.h\""+ - " int GOOD_F_1;"+ - " int GOOD_F_2;"+ - "#126\"pcpptest.h\""+ - " int GOOD_G;"+ - "#128\"pcpptest.h\""+ - "#130\"pcpptest.h\""+ - "#134\"pcpptest.h\""+ - "#136\"pcpptest.h\""; - - - output.flush(); - String result = output.toString(); - output.close(); - - System.err.println("Expected: "); - System.err.println("-------------------------------"); - System.err.println(killWhitespace(expected)); - System.err.println("-------------------------------"); - System.err.println(); - System.err.println("Result: "); - System.err.println("-------------------------------"); - System.err.println(killWhitespace(result)); - System.err.println("-------------------------------"); - System.err.println(); - - assertEquals(killWhitespace(expected), killWhitespace(result)); - - } - - private String killWhitespace(String a) { - return a.replaceAll("\\p{javaWhitespace}+", ""); - } - - public static void main(String args[]) throws IOException { - String tstname = PCPPTest.class.getName(); - org.junit.runner.JUnitCore.main(tstname); - } -} 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/pcpptest.h b/test/junit/com/jogamp/gluegen/pcpptest.h deleted file mode 100644 index e9ba181..0000000 --- a/test/junit/com/jogamp/gluegen/pcpptest.h +++ /dev/null @@ -1,135 +0,0 @@ - -#define CL_SCHAR_MIN (-127-1) - -#define __YES__ 1 - -#if defined( __YES__ ) - #define TEST_A(_x) GOOD_A -#elif defined( _WIN32) && (_MSC_VER) - #define TEST_A(_x) ERR_A_1 -#elif defined( __unix__) || ( __sun__ ) - #define TEST_A(_x) ERR_A_2 -#else - #define TEST_A(_x) ERR_A_3 -#endif - -#if defined( __NO__ ) - #define TEST_B ERR_B_1 -#elif defined( __YES__) - #define TEST_B GOOD_B -#elif defined( __unix__) || ( __sun__ ) - #define TEST_B ERR_B_2 -#else - #define TEST_B ERR_B_3 -#endif - -#if defined( __NO__ ) - #define TEST_C ERR_C_1 -#elif defined( __NO__ ) - #define TEST_C ERR_C_2 -#elif defined( __unix__) || ( __sun__ ) - #define TEST_C ERR_C_3 -#else - #define TEST_C GOOD_C -#endif - -cl_char TEST_A(2); -int TEST_B; -int TEST_C; - -#ifndef __NO__ - #ifdef __YES__ - #ifdef CGDLL_EXPORTS - #define ERR_D_1 - #elif defined (CG_LIB) - #define ERR_D_2 - #else - #define GOOD_D - #endif - #else - #define ERR_D_3 - #endif -#endif - -#ifdef GOOD_D - int TEST_D_GOOD; -#elif - int TEST_D_ERROR; -#endif - -#if (defined(__NO__) && defined(__NOPE__)) - #define TEST_E_VAL ((long) 0x7FFFFFFFFFFFFFFFLL) -#else - #define TEST_E_VAL ((long) 0x7FFFFFFFFFFFFFFFLL) -#endif - -/*** - ** STD API file .. - */ - -#ifndef __test_h_ -#define __test_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined( __NANA__ ) - #if defined( __MINGW64__ ) - #include <cant_find_file_a.h> - #elif defined( __NONO__ ) - #include <cant_find_file_b.h> - #else - #include <cant_find_file_c.h> - #endif - #if defined( __GNUC__ ) - #include <cant_find_file_d.h> - #else - #include <cant_find_file_e.h> - #endif -#else - #if defined( __MINGW64__ ) - #include <cant_find_file_a.h> - #elif defined( __NONO__) - #include <cant_find_file_b.h> - #else - #define TEST_F_VAL1 GOOD_F_1 - #endif - #if defined( __GNUC__ ) - #include <cant_find_file_d.h> - #else - #define TEST_F_VAL2 GOOD_F_2 - #endif -#endif - -#if defined( __YES__ ) - #if defined( __NONO__) - #include <cant_find_file_a.h> - #elif defined( __YES__) - #define TEST_G_VAL GOOD_G - #else - #include <cant_find_file_b.h> - #endif -#else - #if defined( __MINGW64__ ) - #include <cant_find_file_a.h> - #elif defined( __NONO__) - #include <cant_find_file_b.h> - #else - #include <cant_find_file_c.h> - #endif -#endif - -int TEST_F_VAL1; -int TEST_F_VAL2; - -int TEST_G_VAL; - -#warning "Test warning with quotes - they must have quotes" - -#ifdef __cplusplus -} -#endif - -#endif /* __test_h_ */ - 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 ); -- cgit v1.2.3