6943915: Adjust jdk/test/Makefile to deal with .dll and .so libraries needing execute permissions
authorohair
Wed, 12 May 2010 21:35:55 -0700
changeset 5600 8ca34998a6b3
parent 5599 a9bbe8282b0f
child 5601 f09acdbf9fc4
6943915: Adjust jdk/test/Makefile to deal with .dll and .so libraries needing execute permissions Summary: And adjustments to test problem list. Reviewed-by: jjg
jdk/test/Makefile
jdk/test/ProblemList.txt
jdk/test/java/lang/ProcessBuilder/Basic.java
jdk/test/java/lang/Runtime/exec/ExecWithDir.java
--- a/jdk/test/Makefile	Wed May 12 14:41:10 2010 -0700
+++ b/jdk/test/Makefile	Wed May 12 21:35:55 2010 -0700
@@ -37,11 +37,14 @@
 AWK       = awk
 CAT       = cat
 CD        = cd
+CHMOD     = chmod
 CP        = cp
 CUT       = cut
+DIRNAME   = dirname
 ECHO      = echo
 EGREP     = egrep
 EXPAND    = expand
+FIND      = find
 MKDIR     = mkdir
 PWD       = pwd
 SED       = sed
@@ -234,6 +237,35 @@
   endif
 endif
 
+# Temp file to hold list of shared library files possibly needing execute 
+#   permissions at runtime. 
+SHARED_LIBRARY_LIST=$(ABS_TEST_OUTPUT_DIR)/shared_libraries.txt
+
+# Macro that may change execute permissions on library files and check for them.
+#  Files in repositories should not really have execute permissions, however
+#  windows dll files require execute permission. Adding execute permission
+#  may happen automatically on windows when using certain versions of mercurial
+#  but it cannot be guaranteed. And blindly adding execute permission might
+#  be seen as a mercurial 'change', so we avoid adding execute permission to
+#  repository files. Testing from a plain source tree may need the chmod a+x.
+#  Used on select directories.
+define CheckLibraryExecutePermissions # dir
+$(MKDIR) -p `$(DIRNAME) $(SHARED_LIBRARY_LIST)`
+$(RM) $(SHARED_LIBRARY_LIST)
+$(FIND) $1 -name \*.dll -o -name \*.DLL -o -name \*.so > $(SHARED_LIBRARY_LIST)
+if [ -s $(SHARED_LIBRARY_LIST) -a ! -d $(TEST_ROOT)/../.hg ] ; then    \
+  $(ECHO) "$(CHMOD) a+x `$(CAT) $(SHARED_LIBRARY_LIST)`";              \
+  $(CHMOD) a+x `$(CAT) $(SHARED_LIBRARY_LIST)`;                        \
+fi
+if [ -s $(SHARED_LIBRARY_LIST) ] ; then                                \
+  for i in `$(CAT) $(SHARED_LIBRARY_LIST)` ; do                        \
+    if [ ! -x $${i} ] ; then                                           \
+      $(ECHO) "WARNING: File does not have execute permission: $${i}"; \
+    fi;                                                                \
+  done;                                                                \
+fi
+endef
+
 # Expect JPRT to set JPRT_ARCHIVE_BUNDLE (path to zip bundle for results)
 ARCHIVE_BUNDLE = $(ABS_TEST_OUTPUT_DIR)/ARCHIVE_BUNDLE.zip
 ifdef JPRT_ARCHIVE_BUNDLE
@@ -242,7 +274,7 @@
 
 # How to create the test bundle (pass or fail, we want to create this)
 #   Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed.
-ZIP_UP_RESULTS = ( $(MKDIR) -p `dirname $(ARCHIVE_BUNDLE)`     \
+ZIP_UP_RESULTS = ( $(MKDIR) -p `$(DIRNAME) $(ARCHIVE_BUNDLE)`     \
 	           && $(CD) $(ABS_TEST_OUTPUT_DIR)             \
 	           && $(ZIP) -q -r $(ARCHIVE_BUNDLE) . )
 SUMMARY_TXT = $(shell $(GETMIXEDPATH) "$(ABS_TEST_OUTPUT_DIR)")/JTreport/text/summary.txt
@@ -483,6 +515,7 @@
 JDK_ALL_TARGETS += jdk_nio2
 jdk_nio2: java/nio/Buffer java/nio/ByteOrder \
           java/nio/channels java/nio/BufferPoolMXBean java/nio/MappedByteBuffer
+	$(call CheckLibraryExecutePermissions,java/nio/channels)
 	$(call RunOthervmBatch)
 
 # Stable othervm testruns (minus items from PROBLEM_LIST)
@@ -516,6 +549,7 @@
 #   Using samevm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_security3
 jdk_security3: com/sun/security lib/security javax/security sun/security
+	$(call CheckLibraryExecutePermissions,sun/security)
 	$(call RunOthervmBatch)
 
 # All security tests
@@ -542,6 +576,7 @@
 #   Using samevm has serious problems with these tests
 JDK_ALL_TARGETS += jdk_tools2
 jdk_tools2: com/sun/tools sun/jvmstat sun/tools tools vm com/sun/servicetag com/sun/tracing
+	$(call CheckLibraryExecutePermissions,tools/launcher)
 	$(call RunOthervmBatch)
 
 # All tools tests
--- a/jdk/test/ProblemList.txt	Wed May 12 14:41:10 2010 -0700
+++ b/jdk/test/ProblemList.txt	Wed May 12 21:35:55 2010 -0700
@@ -356,10 +356,6 @@
 # RuntimeException: Uptime of the JVM is more than 30 minutes (32 minutes).
 java/lang/management/RuntimeMXBean/UpTime.java			generic-all
 
-# Times out on solaris sparc occasionally, in samevm mode
-java/lang/Runtime/exec/ExecWithDir.java				generic-all
-java/lang/ProcessBuilder/Basic.java				generic-all
-
 # Solaris sparc, samevm, java.lang.Exception: Read from closed pipe hangs
 java/lang/Runtime/exec/SleepyCat.java				generic-all
 
@@ -431,6 +427,15 @@
 
 # jdk_management
 
+# Filed 6951284, fails on linux 64bit Fedora 9, peak thread count differences
+java/lang/management/ThreadMXBean/ResetPeakThreadCount.java	generic-all
+
+# Started failing on linux and solaris (filed 6950927)
+#   com.sun.tools.attach.AttachNotSupportedException:
+#     Unable to open socket file:
+#     target process not responding or HotSpot VM not loaded
+sun/management/jmxremote/bootstrap/JvmstatCountersTest.java	generic-all
+
 # Fails on linux: KO: StringMonitor notification missed or not emitted
 javax/management/monitor/NonComparableAttributeValueTest.java	generic-all
 
@@ -935,6 +940,19 @@
 
 # jdk_security
 
+# Filed 6951285, not sure how often this fails, last was Linux 64bit Fedora 9
+sun/security/krb5/auto/MaxRetries.java				generic-all
+
+# Filed 6950930, fails on windows 32bit c1 and windows 64bit
+sun/security/krb5/auto/IgnoreChannelBinding.java		windows-all
+
+# Filed 6950931, failing on all windows systems
+sun/security/tools/jarsigner/crl.sh				windows-all
+
+# Filed 6950929, only seemed to fail on solaris sparcv9 (-d64)
+#   Failed on Linux -server 32bit too, making generic
+sun/security/krb5/auto/BadKdc4.java				generic-all
+
 # Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3)
 sun/security/pkcs11/Secmod/AddPrivateKey.java			solaris-i586
 sun/security/pkcs11/ec/ReadCertificates.java			solaris-i586
@@ -986,12 +1004,6 @@
 # Fails on Windows 2000, ExceptionInInitializerError
 sun/security/mscapi/AccessKeyStore.sh				generic-all
 
-# Fails on Windows 2000, UnsatisfiedLinkError: libnspr4.dll: Access is denied
-sun/security/pkcs11/KeyAgreement/TestDH.java			generic-all
-
-# Fails on Windows 2000, UnsatisfiedLinkError: libnspr4.dll: Access is denied
-sun/security/pkcs11/fips/ClientJSSEServerJSSE.java		generic-all
-
 # Fails on Solaris 10, KrbException: Additional pre-authentication required (25)
 sun/security/krb5/auto/basic.sh					generic-all
 
@@ -1022,10 +1034,6 @@
 # Othervm, sparc, NoRouteToHostException: Cannot assign requested address
 sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java generic-all
 
-# ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DEVICE_ERROR
-#    Does not seem to run on windows machines? dll missing? 
-sun/security/pkcs11/rsa/TestKeyPairGenerator.java		generic-all
-
 # Times out on windows X64, othervm mode
 #    Solaris sparc and sparcv9 -server, timeout
 sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java	generic-all
@@ -1041,7 +1049,6 @@
 sun/security/tools/jarsigner/oldsig.sh				generic-all
 
 # Various failures on Linux Fedora 9 X64, othervm mode
-#   Does not seem to run on windows machines? dll missing? 
 sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java	generic-all
 
 # Linux i586 -server, buffer too short to hold shared secret?
@@ -1078,9 +1085,6 @@
 java/security/UnresolvedPermission/AccessorMethods.java		generic-all
 java/security/UnresolvedPermission/Equals.java			generic-all
 
-# Do not seem to run on windows machines? dll missing? 
-sun/security/krb5/auto/IgnoreChannelBinding.java	 	windows-all
-
 # Fails on OpenSolaris, missing classes, slow on Solaris sparc
 sun/security/ec/TestEC.java					generic-all
 
@@ -1088,65 +1092,12 @@
 sun/security/mscapi/IsSunMSCAPIAvailable.sh		 	windows-x64
 sun/security/mscapi/RSAEncryptDecrypt.sh		 	windows-x64
 
-# Do not seem to run on windows machines? dll missing? 
-sun/security/pkcs11/Cipher/ReinitCipher.java		 	windows-all
-sun/security/pkcs11/Cipher/TestRSACipher.java		 	windows-all
-sun/security/pkcs11/Cipher/TestRSACipherWrap.java	 	windows-all
-sun/security/pkcs11/Cipher/TestSymmCiphers.java 	 	windows-all
-sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java	 	windows-all
-
-# Do not seem to run on windows machines? dll missing? 
-sun/security/pkcs11/ec/ReadCertificates.java		 	windows-all
-sun/security/pkcs11/ec/ReadPKCS12.java			 	windows-all
-sun/security/pkcs11/ec/TestCurves.java			 	windows-all
-sun/security/pkcs11/ec/TestECDH.java			 	windows-all
-sun/security/pkcs11/ec/TestECDSA.java			 	windows-all
-sun/security/pkcs11/ec/TestECGenSpec.java		 	windows-all
-sun/security/pkcs11/ec/TestKeyFactory.java		 	windows-all
-sun/security/pkcs11/fips/TrustManagerTest.java		 	windows-all
-
-# Do not seem to run on windows machines? dll missing? 
-sun/security/pkcs11/KeyAgreement/TestShort.java 	 	windows-all
-sun/security/pkcs11/KeyGenerator/DESParity.java 	 	windows-all
-
 # Exception in test solaris-sparc -client -server, no windows
-sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java	windows-all solaris-all
-
-# Do not seem to run on windows machines? dll missing? 
-sun/security/pkcs11/KeyStore/Basic.sh			 	windows-all
-sun/security/pkcs11/KeyStore/ClientAuth.sh		 	windows-all
+sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java	        solaris-all
 
 # Solaris sparc client, fails to compile?
 sun/security/pkcs11/KeyStore/SecretKeysBasic.sh 	 	solaris-all
 
-# Do not seem to run on windows machines? dll missing? 
-sun/security/pkcs11/Mac/ReinitMac.java			 	windows-all
-sun/security/pkcs11/MessageDigest/ByteBuffers.java	 	windows-all
-sun/security/pkcs11/MessageDigest/DigestKAT.java	 	windows-all
-sun/security/pkcs11/MessageDigest/ReinitDigest.java	 	windows-all
-sun/security/pkcs11/Provider/ConfigQuotedString.sh	 	windows-all
-sun/security/pkcs11/Provider/Login.sh			 	windows-all
-sun/security/pkcs11/rsa/KeyWrap.java			 	windows-all
-sun/security/pkcs11/rsa/TestCACerts.java		 	windows-all
-sun/security/pkcs11/rsa/TestKeyFactory.java		 	windows-all
-sun/security/pkcs11/rsa/TestSignatures.java		 	windows-all
-sun/security/pkcs11/SampleTest.java			 	windows-all
-sun/security/pkcs11/Secmod/AddPrivateKey.java		 	windows-all
-sun/security/pkcs11/Secmod/AddTrustedCert.java		 	windows-all
-sun/security/pkcs11/Secmod/Crypto.java			 	windows-all
-sun/security/pkcs11/Secmod/GetPrivateKey.java		 	windows-all
-sun/security/pkcs11/Secmod/JksSetPrivateKey.java	 	windows-all
-sun/security/pkcs11/Secmod/TrustAnchors.java		 	windows-all
-sun/security/pkcs11/SecureRandom/Basic.java		 	windows-all
-sun/security/pkcs11/Serialize/SerializeProvider.java	 	windows-all
-sun/security/pkcs11/Signature/ByteBuffers.java		 	windows-all
-sun/security/pkcs11/Signature/ReinitSignature.java	 	windows-all
-sun/security/pkcs11/Signature/TestDSA.java		 	windows-all
-sun/security/pkcs11/tls/TestKeyMaterial.java		 	windows-all
-sun/security/pkcs11/tls/TestMasterSecret.java		 	windows-all
-sun/security/pkcs11/tls/TestPremaster.java		 	windows-all
-sun/security/pkcs11/tls/TestPRF.java			 	windows-all
-
 # Fails on OpenSolaris java.net.BindException: Address already in use
 sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java		generic-all
 
@@ -1164,6 +1115,58 @@
 sun/security/tools/keytool/importreadall.sh		 	solaris-all
 sun/security/tools/keytool/selfissued.sh		 	solaris-all
 
+# This is a problem with JPRT not being able to run these tests due to a dll
+#  permission problem that has not been figured out:
+sun/security/pkcs11/SampleTest.java				windows-i586
+sun/security/pkcs11/Secmod/AddPrivateKey.java			windows-i586
+sun/security/pkcs11/Cipher/ReinitCipher.java			windows-i586
+sun/security/pkcs11/Cipher/TestRSACipher.java			windows-i586
+sun/security/pkcs11/Cipher/TestRSACipherWrap.java		windows-i586
+sun/security/pkcs11/Cipher/TestSymmCiphers.java			windows-i586
+sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java		windows-i586
+sun/security/pkcs11/KeyAgreement/TestShort.java			windows-i586
+sun/security/pkcs11/KeyGenerator/DESParity.java			windows-i586
+sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java		windows-i586
+sun/security/pkcs11/KeyStore/Basic.sh				windows-i586
+sun/security/pkcs11/KeyStore/ClientAuth.sh			windows-i586
+sun/security/pkcs11/Mac/ReinitMac.java				windows-i586
+sun/security/pkcs11/MessageDigest/ByteBuffers.java		windows-i586
+sun/security/pkcs11/MessageDigest/DigestKAT.java		windows-i586
+sun/security/pkcs11/MessageDigest/ReinitDigest.java		windows-i586
+sun/security/pkcs11/Provider/ConfigQuotedString.sh		windows-i586
+sun/security/pkcs11/Provider/Login.sh				windows-i586
+sun/security/pkcs11/Sampl/pkcs11/Secmod/AddPrivateKey.java	windows-i586
+sun/security/pkcs11/Secmod/AddTrustedCert.java			windows-i586
+sun/security/pkcs11/Secmod/Crypto.java				windows-i586
+sun/security/pkcs11/Secmod/GetPrivateKey.java			windows-i586
+sun/security/pkcs11/Secmod/JksSetPrivateKey.java		windows-i586
+sun/security/pkcs11/Secmod/TrustAnchors.java			windows-i586
+sun/security/pkcs11/SecureRandom/Basic.java			windows-i586
+sun/security/pkcs11/SecureRandom/TestDeserialization.java	windows-i586
+sun/security/pkcs11/Serialize/SerializeProvider.java		windows-i586
+sun/security/pkcs11/Signature/ByteBuffers.java			windows-i586
+sun/security/pkcs11/Signature/ReinitSignature.java		windows-i586
+sun/security/pkcs11/Signature/TestDSA.java			windows-i586
+sun/security/pkcs11/Signature/TestRSAKeyLength.java		windows-i586
+sun/security/pkcs11/ec/ReadCertificates.java			windows-i586
+sun/security/pkcs11/ec/ReadPKCS12.java				windows-i586
+sun/security/pkcs11/ec/TestCurves.java				windows-i586
+sun/security/pkcs11/ec/TestECDH.java				windows-i586
+sun/security/pkcs11/ec/TestECDSA.java				windows-i586
+sun/security/pkcs11/ec/TestECGenSpec.java			windows-i586
+sun/security/pkcs11/ec/TestKeyFactory.java			windows-i586
+sun/security/pkcs11/fips/ClientJSSEServerJSSE.java		windows-i586
+sun/security/pkcs11/fips/TrustManagerTest.java			windows-i586
+sun/security/pkcs11/rsa/KeyWrap.java				windows-i586
+sun/security/pkcs11/rsa/TestCACerts.java			windows-i586
+sun/security/pkcs11/rsa/TestKeyFactory.java			windows-i586
+sun/security/pkcs11/rsa/TestKeyPairGenerator.java		windows-i586
+sun/security/pkcs11/rsa/TestSignatures.java			windows-i586
+sun/security/pkcs11/tls/TestKeyMaterial.java			windows-i586
+sun/security/pkcs11/tls/TestMasterSecret.java			windows-i586
+sun/security/pkcs11/tls/TestPRF.java				windows-i586
+sun/security/pkcs11/tls/TestPremaster.java			windows-i586
+
 ############################################################################
 
 # jdk_swing (not using samevm)
@@ -1188,6 +1191,9 @@
 
 # jdk_tools
 
+# Filed bug 6951287, failed on Linux 64bit, sometimes?
+com/sun/jdi/PopAndInvokeTest.java				generic-all
+
 # Some of the tools tests kind of require "othervm" or if they don't will
 #  always be firing up another VM anyway due to the nature of tools testing.
 #  So most if not all tools tests are now being run with "othervm" mode.
--- a/jdk/test/java/lang/ProcessBuilder/Basic.java	Wed May 12 14:41:10 2010 -0700
+++ b/jdk/test/java/lang/ProcessBuilder/Basic.java	Wed May 12 21:35:55 2010 -0700
@@ -28,7 +28,7 @@
  *      6464154 6523983 6206031 4960438 6631352 6631966 6850957 6850958
  *      4947220
  * @summary Basic tests for Process and Environment Variable code
- * @run main/othervm Basic
+ * @run main/othervm/timeout=300 Basic
  * @author Martin Buchholz
  */
 
--- a/jdk/test/java/lang/Runtime/exec/ExecWithDir.java	Wed May 12 14:41:10 2010 -0700
+++ b/jdk/test/java/lang/Runtime/exec/ExecWithDir.java	Wed May 12 21:35:55 2010 -0700
@@ -23,6 +23,7 @@
 
 /* @test
  * @bug 4750978
+ * @run main/othervm/timeout=300 ExecWithDir
  * @summary Ensure that we can fork-and-exec repeatedly when a new working
  *          directory is specified
  */