-
Notifications
You must be signed in to change notification settings - Fork 55
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1219: IOUtil.testDirExe: Satisfactory when executed, more debug o…
…ptions 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'+<SUFFIX> will be used as-is. - the test-exe will not be deleted - StreamMonitor is being used to dump stdout/stderr if !DEBUG_EXE_NOSTREAM.
- Loading branch information
Showing
9 changed files
with
512 additions
and
15 deletions.
There are no files selected for viewing
119 changes: 119 additions & 0 deletions
119
doc/Implementation/IOUtil.testDirExe/linux-noexec-file_attribs.log
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
LD_LIBRARY_PATH ../build-x86_64/test/build/natives: | ||
USE_CLASSPATH lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:/opt-share/apache-ant/lib/ant-launcher.jar:lib/semantic-versioning/semver.jar:../build-x86_64/../make/lib/TestJarsInJar.jar:../build-x86_64/gluegen-rt.jar:../build-x86_64/gluegen.jar:../build-x86_64/gluegen-test-util.jar:../build-x86_64/test/build/gluegen-test.jar:../build-x86_64/gluegen-rt-natives.jar | ||
/opt-linux-x86_64/jre8/bin/java | ||
java -cp lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:/opt-share/apache-ant/lib/ant-launcher.jar:lib/semantic-versioning/semver.jar:../build-x86_64/../make/lib/TestJarsInJar.jar:../build-x86_64/gluegen-rt.jar:../build-x86_64/gluegen.jar:../build-x86_64/gluegen-test-util.jar:../build-x86_64/test/build/gluegen-test.jar:../build-x86_64/gluegen-rt-natives.jar -Drootrel.build=build-x86_64 -Dgluegen.root=.. -Djogamp.debug.IOUtil -Djogamp.debug.IOUtil.Exe -Djogamp.debug.IOUtil.Exe.NoStream com.jogamp.common.util.TestPlatform01 | ||
JUnit version 4.11 | ||
++++ Test Singleton.ctor() | ||
++++ Test Singleton.lock() | ||
SLOCK [T SingletonServerSocket1-localhost/127.0.0.1:59999 @ 1442811548011 ms III - Start | ||
SLOCK [T main @ 1442811548012 ms +++ localhost/127.0.0.1:59999 - Locked within 5 ms, 1 attempts | ||
.++++ TestCase.setUp: com.jogamp.common.util.TestPlatform01 - testInfo00 | ||
|
||
IOUtil.getTempRoot(): tempX1 </tmp>, used true | ||
IOUtil.getTempRoot(): tempX3 <null>, used false | ||
IOUtil.getTempRoot(): tempX4 </home/sven>, used true | ||
IOUtil.getTempRoot(): tempX2 </home/sven/.cache>, used true | ||
IOUtil.testDirExec: </tmp/jogamp_exe_tst.sh>: Caught IOException: Cannot run program "/tmp/jogamp_exe_tst.sh": error=13, Permission denied | ||
java.io.IOException: Cannot run program "/tmp/jogamp_exe_tst.sh": error=13, Permission denied | ||
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) | ||
at java.lang.Runtime.exec(Runtime.java:620) | ||
at com.jogamp.common.util.IOUtil.testDirExec(IOUtil.java:948) | ||
at com.jogamp.common.util.IOUtil.testDirImpl(IOUtil.java:986) | ||
at com.jogamp.common.util.IOUtil.getSubTempDir(IOUtil.java:1046) | ||
at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1161) | ||
at com.jogamp.common.util.cache.TempFileCache.<clinit>(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.<clinit>(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(NativeMethodAccessorImpl.java:62) | ||
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | ||
at java.lang.reflect.Method.invoke(Method.java:497) | ||
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: error=13, Permission denied | ||
at java.lang.UNIXProcess.forkAndExec(Native Method) | ||
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248) | ||
at java.lang.ProcessImpl.start(ProcessImpl.java:134) | ||
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) | ||
... 49 more | ||
IOUtil.testDirExec(): test-exe </tmp/jogamp_exe_tst.sh>, existingFile true, returned -1 | ||
IOUtil.testDirExec(): abs-path </tmp>: res -2 -> false | ||
IOUtil.testDirExec(): total 72ms, create 0ms, execute 72ms | ||
IOUtil.testDirImpl(tempX1): </tmp>, create true, exec true: false | ||
IOUtil.testDirExec(): test-exe </home/sven/.cache/jogamp_exe_tst1387386267639974492.sh>, existingFile false, returned 0 | ||
IOUtil.testDirExec(): abs-path </home/sven/.cache>: res 0 -> true | ||
IOUtil.testDirExec(): total 17ms, create 13ms, execute 4ms | ||
IOUtil.testDirImpl(tempX2): </home/sven/.cache>, create true, exec true: true | ||
IOUtil.testDirExec(): test-exe </home/sven/.cache/jogamp_0000/jogamp_exe_tst906522503538352810.sh>, existingFile false, returned 0 | ||
IOUtil.testDirExec(): abs-path </home/sven/.cache/jogamp_0000>: res 0 -> true | ||
IOUtil.testDirExec(): total 2ms, create 0ms, execute 2ms | ||
IOUtil.testDirImpl(tempX2): </home/sven/.cache/jogamp_0000>, create true, exec true: true | ||
IOUtil.getTempRoot(): temp dirs: exec: /home/sven/.cache/jogamp_0000, noexec: /home/sven/.cache/jogamp_0000 | ||
IOUtil.testDirImpl(testDir): </home/sven/.cache/jogamp_0000/file_cache>, create true, exec false: true | ||
|
||
OS name/type: Linux, LINUX | ||
OS version: 4.1.6-x64-k10-nlb-jau01, 4.1.6 | ||
|
||
Arch, CPU: amd64, X86_64/X86 | ||
OS/Arch: linux-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 8 / 8 | ||
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 @ 1442811548171 ms III - Stopping: alive true, shallQuit true, hasSocket true | ||
SLOCK [T main @ 1442811548171 ms --- localhost/127.0.0.1:59999 - Unlock ok within 1 ms | ||
|
||
Time: 0.693 | ||
|
||
OK (2 tests) | ||
|
||
|
118 changes: 118 additions & 0 deletions
118
doc/Implementation/IOUtil.testDirExe/win32-noexec-SoftwareRestrictionPolicies.log
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
JUnit version 4.11 | ||
++++ Test Singleton.ctor() | ||
++++ Test Singleton.lock() | ||
SLOCK [T SingletonServerSocket1-localhost/127.0.0.1:59999 @ 1442715964261 ms III - Start | ||
SLOCK [T main @ 1442715964261 ms +++ localhost/127.0.0.1:59999 - Locked within 1032 ms, 1 attempts | ||
.++++ TestCase.setUp: com.jogamp.common.util.TestPlatform01 - testInfo00 | ||
|
||
IOUtil.getTempRoot(): tempX1 <C:\cygwin\tmp>, used true | ||
IOUtil.getTempRoot(): tempX3 <C:\cygwin\tmp>, used false | ||
IOUtil.getTempRoot(): tempX4 <C:\Users\sven>, used true | ||
IOUtil.getTempRoot(): tempX2 <null>, used false | ||
IOUtil: locating <com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz>, has cl: true | ||
AssetURLContext.resolve: <com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz> | ||
ERR(0): no protocol: com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz | ||
AssetURLContext.resolve: type 2: url <jar:file:/C:/projects/jogamp/gluegen/build-win64/gluegen-rt.jar!/com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz>, conn <sun.net.www.protocol.jar.JarURLConnection:jar:file:/C:/projects/jogamp/gluegen/build-win64/gluegen-rt.jar!/com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz>, connURL <jar:file:/C:/projects/jogamp/gluegen/build-win64/gluegen-rt.jar!/com/jogamp/common/util/bin/exe-windows-i386-2048b.bin.316b.gz> | ||
IOUtil: found <bin/exe-windows-i386-2048b.bin.316b.gz> within class package <com/jogamp/common/util/> of given class <com.jogamp.common.util.IOUtil>: true | ||
IOUtil.testDirExec: <C:\cygwin\tmp\jogamp_exe_tst2114409495120940481.exe>: Caught IOException: Cannot run program "C:\cygwin\tmp\jogamp_exe_tst2114409495120940481.exe": CreateProcess error=1260, This program is blocked by group policy. For more information, contact your system administrator | ||
java.io.IOException: Cannot run program "C:\cygwin\tmp\jogamp_exe_tst2114409495120940481.exe": CreateProcess error=1260, This program is blocked by group policy. For more information, contact your system administrator | ||
at java.lang.ProcessBuilder.start(Unknown Source) | ||
at java.lang.Runtime.exec(Unknown Source) | ||
at com.jogamp.common.util.IOUtil.testDirExec(IOUtil.java:938) | ||
at com.jogamp.common.util.IOUtil.testDirImpl(IOUtil.java:980) | ||
at com.jogamp.common.util.IOUtil.getSubTempDir(IOUtil.java:1040) | ||
at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1155) | ||
at com.jogamp.common.util.cache.TempFileCache.<clinit>(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.<clinit>(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=1260, This program is blocked by group policy. For more information, contact your system administrator | ||
at java.lang.ProcessImpl.create(Native Method) | ||
at java.lang.ProcessImpl.<init>(Unknown Source) | ||
at java.lang.ProcessImpl.start(Unknown Source) | ||
... 50 more | ||
IOUtil.testDirExec(): test-exe <C:\cygwin\tmp\jogamp_exe_tst2114409495120940481.exe> | ||
IOUtil.testDirExec(): abs-path <C:\cygwin\tmp>: res -2 -> false | ||
IOUtil.testDirExec(): total 172ms, create 78ms, execute 94ms | ||
IOUtil.testDirImpl(tempX1): <C:\cygwin\tmp>, create true, exec true: false | ||
IOUtil.testDirExec(): test-exe <C:\Users\sven\jogamp_exe_tst3300634740132855682.exe> | ||
IOUtil.testDirExec(): abs-path <C:\Users\sven>: res 0 -> true | ||
IOUtil.testDirExec(): total 78ms, create 0ms, execute 78ms | ||
IOUtil.testDirImpl(tempX4): <C:\Users\sven>, create true, exec true: true | ||
IOUtil.testDirExec(): test-exe <C:\Users\sven\.jogamp_0000\jogamp_exe_tst3236854417674340992.exe> | ||
IOUtil.testDirExec(): abs-path <C:\Users\sven\.jogamp_0000>: res 0 -> true | ||
IOUtil.testDirExec(): total 16ms, create 0ms, execute 16ms | ||
IOUtil.testDirImpl(tempX4): <C:\Users\sven\.jogamp_0000>, create true, exec true: true | ||
IOUtil.getTempRoot(): temp dirs: exec: C:\Users\sven\.jogamp_0000, noexec: C:\Users\sven\.jogamp_0000 | ||
IOUtil.testDirImpl(testDir): <C:\Users\sven\.jogamp_0000\file_cache>, 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 @ 1442715964729 ms III - Stopping: alive true, shallQuit true, hasSocket true | ||
SLOCK [T main @ 1442715964729 ms --- localhost/127.0.0.1:59999 - Unlock ok within 0 ms | ||
|
||
Time: 2.015 | ||
|
||
OK (2 tests) | ||
|
Oops, something went wrong.