aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2013-12-10 22:05:17 +0100
committerSven Gothel <[email protected]>2013-12-10 22:05:17 +0100
commit085d7bf429f5640eb540dff4e66f25b69e2c7671 (patch)
tree452f5d9ce88517687f02f48cc0edc33da1079576
parentf8c2a90129736844a12b76d658cb339a7c36cd9a (diff)
TestShutdownCompleteNEWT: Enhance profiling via '-wait -initOnly' ; Use Platform.currentTimeMicros() for accuracy
ReflectionUtil usage: TestShutdownCompleteNEWT -wait -initOnly Hotspots: - MakeCurrent 5.3% - Called 52 times - ClassLoader.findClass(..) 3.1% - Called 486 times . - ReflectionUtil: 13 times ~ 0.3%
-rw-r--r--make/scripts/tests.sh4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java72
2 files changed, 37 insertions, 39 deletions
diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh
index 26b70cbd0..fe09a427b 100644
--- a/make/scripts/tests.sh
+++ b/make/scripts/tests.sh
@@ -366,7 +366,7 @@ function testawtswt() {
#testnoawt com.jogamp.opengl.test.junit.jogl.tile.TestRandomTiledRendering2GL2NEWT $*
#testawt com.jogamp.opengl.test.junit.jogl.tile.TestRandomTiledRendering3GL2AWT $*
#testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsAWT $*
-testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsSwingAWT $*
+#testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsSwingAWT $*
#testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsSwingAWT2 $*
#testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsNewtAWT $*
#testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingNIOImageSwingAWT $*
@@ -384,7 +384,7 @@ testawt com.jogamp.opengl.test.junit.jogl.tile.TestTiledPrintingGearsSwingAWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile00NEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLProfile01NEWT $*
-#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestShutdownCompleteNEWT $*
+testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestShutdownCompleteNEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestInitConcurrent01NEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestInitConcurrent02NEWT $*
#testnoawt com.jogamp.opengl.test.junit.jogl.acore.TestGLContextSurfaceLockNEWT $*
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java
index 881d6c8de..a0e7f515c 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/TestShutdownCompleteNEWT.java
@@ -3,14 +3,14 @@
*
* 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
@@ -20,26 +20,26 @@
* 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.opengl.test.junit.jogl.acore;
-import java.io.BufferedReader;
import java.io.IOException;
-import java.io.InputStreamReader;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLProfile;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Test;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
+import com.jogamp.common.os.Platform;
import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.opengl.JoglVersion;
import com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2;
@@ -50,12 +50,12 @@ import com.jogamp.opengl.util.Animator;
public class TestShutdownCompleteNEWT extends UITestCase {
static long duration = 300; // ms
-
+
protected void runTestGL(boolean onscreen) throws InterruptedException {
GLCapabilities caps = new GLCapabilities(GLProfile.getGL2ES2());
caps.setOnscreen(onscreen);
caps.setPBuffer(!onscreen);
-
+
GLWindow glWindow = GLWindow.create(caps);
Assert.assertNotNull(glWindow);
glWindow.setTitle("Gears NEWT Test");
@@ -81,29 +81,36 @@ public class TestShutdownCompleteNEWT extends UITestCase {
glWindow.destroy();
}
+ @AfterClass
+ public static void afterAll() {
+ if(waitForKey) {
+ UITestCase.waitForKey("Exit");
+ }
+ }
+
protected void oneLife(boolean glInfo) throws InterruptedException {
if(waitForEach) {
- waitForEnter();
+ UITestCase.waitForKey("Start One Life");
}
- long t0 = System.nanoTime();
+ long t0 = Platform.currentTimeMicros();
GLProfile.initSingleton();
- long t1 = System.nanoTime();
+ long t1 = Platform.currentTimeMicros();
if(!initOnly) {
runTestGL(true);
}
- long t2 = System.nanoTime();
+ long t2 = Platform.currentTimeMicros();
if(glInfo) {
System.err.println(JoglVersion.getDefaultOpenGLInfo(null, null, false).toString());
}
- long t3 = System.nanoTime();
- GLProfile.shutdown();
- long t4 = System.nanoTime();
- System.err.println("Total: "+ (t3-t0)/1e6 +"ms");
- System.err.println(" GLProfile.initSingleton(): "+ (t1-t0)/1e6 +"ms");
- System.err.println(" Demo Code: "+ (t2-t1)/1e6 +"ms");
- System.err.println(" GLProfile.shutdown(): "+ (t4-t3)/1e6 +"ms");
+ long t3 = Platform.currentTimeMicros();
+ GLProfile.shutdown();
+ long t4 = Platform.currentTimeMicros();
+ System.err.println("Total: "+ (t3-t0)/1e3 +"ms");
+ System.err.println(" GLProfile.initSingleton(): "+ (t1-t0)/1e3 +"ms");
+ System.err.println(" Demo Code: "+ (t2-t1)/1e3 +"ms");
+ System.err.println(" GLProfile.shutdown(): "+ (t4-t3)/1e3 +"ms");
}
-
+
@Test
public void test01OneLife() throws InterruptedException {
oneLife(true);
@@ -113,27 +120,18 @@ public class TestShutdownCompleteNEWT extends UITestCase {
public void test01AnotherLife() throws InterruptedException {
oneLife(false);
}
-
+
@Test
public void test01TwoLifes() throws InterruptedException {
oneLife(false);
oneLife(false);
}
-
+
static boolean initOnly = false;
static boolean waitForEach = false;
-
- static void waitForEnter() {
- BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
- System.err.println("Press enter to continue");
- try {
- System.err.println(stdin.readLine());
- } catch (IOException e) { }
- }
-
+ static boolean waitForKey = false;
+
public static void main(String args[]) throws IOException {
- boolean waitForKey = false;
-
for(int i=0; i<args.length; i++) {
if(args[i].equals("-wait")) {
waitForKey = true;
@@ -144,11 +142,11 @@ public class TestShutdownCompleteNEWT extends UITestCase {
initOnly = true;
}
}
-
+
if(waitForKey) {
- waitForEnter();
+ UITestCase.waitForKey("Start");
}
-
+
String tstname = TestShutdownCompleteNEWT.class.getName();
org.junit.runner.JUnitCore.main(tstname);
}