diff options
Diffstat (limited to 'src/junit/com')
6 files changed, 306 insertions, 29 deletions
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 |