From a8db919494e934f768ee8adb0d0bad75fa390e62 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Mon, 21 Sep 2015 07:26:53 +0200 Subject: Bug 1219: IOUtil.testDirExe: Satisfactory when executed, more debug options IOUtil.testDirExe(): - Satisfactory when executed Failure to execute produce an IOException right at ProcessBuilder.start(). Hence we can allow an unexpected process exit value, since we only want to learn whether executable files are allowed. - More debug options DEBUG_EXE: 'jogamp.debug.IOUtil.Exe' DEBUG_EXE_NOSTREAM: 'jogamp.debug.IOUtil.Exe.NoStream' - if DEBUG_EXE - a pre-existing 'jogamp_exe_tst'+ will be used as-is. - the test-exe will not be deleted - StreamMonitor is being used to dump stdout/stderr if !DEBUG_EXE_NOSTREAM. --- .../win32-noexec-invalid_executable.log | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 doc/Implementation/IOUtil.testDirExe/win32-noexec-invalid_executable.log (limited to 'doc/Implementation/IOUtil.testDirExe/win32-noexec-invalid_executable.log') diff --git a/doc/Implementation/IOUtil.testDirExe/win32-noexec-invalid_executable.log b/doc/Implementation/IOUtil.testDirExe/win32-noexec-invalid_executable.log new file mode 100644 index 0000000..3c0992b --- /dev/null +++ b/doc/Implementation/IOUtil.testDirExe/win32-noexec-invalid_executable.log @@ -0,0 +1,118 @@ +JUnit version 4.11 +++++ Test Singleton.ctor() +++++ Test Singleton.lock() +SLOCK [T SingletonServerSocket1-localhost/127.0.0.1:59999 @ 1442717359736 ms III - Start +SLOCK [T main @ 1442717359736 ms +++ localhost/127.0.0.1:59999 - Locked within 1047 ms, 1 attempts +.++++ TestCase.setUp: com.jogamp.common.util.TestPlatform01 - testInfo00 + +IOUtil.getTempRoot(): tempX1 , used true +IOUtil.getTempRoot(): tempX3 , used false +IOUtil.getTempRoot(): tempX4 , used true +IOUtil.getTempRoot(): tempX2 , used false +IOUtil.testDirExec: : Caught IOException: Cannot run program "C:\cygwin\tmp\jogamp_exe_tst.exe": CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need a x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher +java.io.IOException: Cannot run program "C:\cygwin\tmp\jogamp_exe_tst.exe": CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need a x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher + at java.lang.ProcessBuilder.start(Unknown Source) + at java.lang.Runtime.exec(Unknown Source) + at com.jogamp.common.util.IOUtil.testDirExec(IOUtil.java:948) + at com.jogamp.common.util.IOUtil.testDirImpl(IOUtil.java:990) + at com.jogamp.common.util.IOUtil.getSubTempDir(IOUtil.java:1050) + at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1165) + at com.jogamp.common.util.cache.TempFileCache.(TempFileCache.java:81) + at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:88) + at com.jogamp.common.os.Platform$1.run(Platform.java:309) + at java.security.AccessController.doPrivileged(Native Method) + at com.jogamp.common.os.Platform.(Platform.java:287) + at com.jogamp.common.util.TestPlatform01.testInfo00(TestPlatform01.java:47) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) + at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) + at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) + at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) + at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) + at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) + at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) + at org.junit.rules.RunRules.evaluate(RunRules.java:20) + at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) + at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) + at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) + at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) + at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) + at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) + at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) + at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) + at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) + at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) + at org.junit.runners.ParentRunner.run(ParentRunner.java:309) + at org.junit.runners.Suite.runChild(Suite.java:127) + at org.junit.runners.Suite.runChild(Suite.java:26) + at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) + at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) + at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) + at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) + at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) + at org.junit.runners.ParentRunner.run(ParentRunner.java:309) + at org.junit.runner.JUnitCore.run(JUnitCore.java:160) + at org.junit.runner.JUnitCore.run(JUnitCore.java:138) + at org.junit.runner.JUnitCore.run(JUnitCore.java:117) + at org.junit.runner.JUnitCore.runMain(JUnitCore.java:96) + at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:47) + at org.junit.runner.JUnitCore.main(JUnitCore.java:40) + at com.jogamp.common.util.TestPlatform01.main(TestPlatform01.java:93) +Caused by: java.io.IOException: CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need a x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher + at java.lang.ProcessImpl.create(Native Method) + at java.lang.ProcessImpl.(Unknown Source) + at java.lang.ProcessImpl.start(Unknown Source) + ... 50 more +IOUtil.testDirExec(): test-exe , existingFile true +IOUtil.testDirExec(): abs-path : res -2 -> false +IOUtil.testDirExec(): total 63ms, create 0ms, execute 63ms +IOUtil.testDirImpl(tempX1): , create true, exec true: false +IOUtil: locating , has cl: true +AssetURLContext.resolve: +ERR(0): no protocol: com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz +AssetURLContext.resolve: type 2: url , conn , connURL +IOUtil: found within class package of given class : true +IOUtil.testDirExec(): test-exe , existingFile false +IOUtil.testDirExec(): abs-path : res 0 -> true +IOUtil.testDirExec(): total 578ms, create 94ms, execute 484ms +IOUtil.testDirImpl(tempX4): , create true, exec true: true +IOUtil.testDirExec(): test-exe , existingFile false +IOUtil.testDirExec(): abs-path : res 0 -> true +IOUtil.testDirExec(): total 16ms, create 0ms, execute 16ms +IOUtil.testDirImpl(tempX4): , create true, exec true: true +IOUtil.getTempRoot(): temp dirs: exec: C:\Users\sven\.jogamp_0000, noexec: C:\Users\sven\.jogamp_0000 +IOUtil.testDirImpl(testDir): , create true, exec false: true + +OS name/type: Windows 7, WINDOWS +OS version: 6.1, 6.1.0 + +Arch, CPU: amd64, X86_64/X86 +OS/Arch: windows-amd64 + +Java runtime: Java(TM) SE Runtime Environment +Java vendor[name/url]: Oracle Corporation/http://java.oracle.com/ +Java version, vm: 1.8.0_60, Java HotSpot(TM) 64-Bit Server VM + +MD: MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment: + int8 1 / 1, int16 2 / 2 + int 4 / 4, long 4 / 4 + int32 4 / 4, int64 8 / 8 + float 4 / 4, double 8 / 8, ldouble 16 / 16 + pointer 8 / 8, page 4096 + + +++++ TestCase.tearDown: com.jogamp.common.util.TestPlatform01 - testInfo00 +.++++ TestCase.setUp: com.jogamp.common.util.TestPlatform01 - testPageSize01 +PageSize: 4096 +++++ TestCase.tearDown: com.jogamp.common.util.TestPlatform01 - testPageSize01 +++++ Test Singleton.unlock() +SLOCK [T SingletonServerSocket1-localhost/127.0.0.1:59999 @ 1442717360611 ms III - Stopping: alive true, shallQuit true, hasSocket true +SLOCK [T main @ 1442717360611 ms --- localhost/127.0.0.1:59999 - Unlock ok within 0 ms + +Time: 2.437 + +OK (2 tests) + -- cgit v1.2.3