summaryrefslogtreecommitdiff
path: root/openjdk8-aarch64-port-snapshot/hotspot/test/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'openjdk8-aarch64-port-snapshot/hotspot/test/runtime')
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6626217/Test6626217.sh69
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6878713/Test6878713.sh168
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6929067/Test6929067.sh26
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7020373/Test7020373.sh52
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7051189/Xchecksig.sh24
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test.java65
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test7107135.sh91
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/TestMT.java85
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/test.c39
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7110720/Test7110720.sh19
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7116786/Test7116786.java9
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7158804/Test7158804.sh11
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7162488/Test7162488.sh24
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8003985/Test8003985.java302
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8010389/VMThreadDlopen.java (renamed from openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8007736/TestStaticIF.java)30
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/BooleanFlagWithInvalidValue.java8
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/FlagWithInvalidValue.java4
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java8
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/BaselineWithParameter.java2
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/PrintNMTStatistics.java10
-rw-r--r--openjdk8-aarch64-port-snapshot/hotspot/test/runtime/interned/SanityTest.java59
21 files changed, 847 insertions, 258 deletions
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6626217/Test6626217.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6626217/Test6626217.sh
index a8c8a239..ae340798 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6626217/Test6626217.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6626217/Test6626217.sh
@@ -27,78 +27,29 @@
# @summary Loader-constraint table allows arrays instead of only the base-classes
# @run shell Test6626217.sh
#
-
+## some tests require path to find test source dir
if [ "${TESTSRC}" = "" ]
- then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
-then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- echo "TESTJAVA not set, selecting " ${TESTJAVA}
- echo "If this is incorrect, try setting the variable manually."
-fi
-
-if [ "${TESTCLASSES}" = "" ]
then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
-
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux | Darwin )
- NULL=/dev/null
- PS=":"
- FS="/"
- RM=/bin/rm
- CP=/bin/cp
- MV=/bin/mv
- ;;
- Windows_* )
- NULL=NUL
- PS=";"
- FS="\\"
- RM=rm
- CP=cp
- MV=mv
- ;;
- CYGWIN_* )
- NULL=/dev/null
- PS=";"
- FS="/"
- RM=rm
- CP=cp
- MV=mv
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-JEMMYPATH=${CPAPPEND}
-CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH
-
-THIS_DIR=`pwd`
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
JAVA=${TESTJAVA}${FS}bin${FS}java
-JAVAC=${TESTJAVA}${FS}bin${FS}javac
-
-${JAVA} ${TESTVMOPTS} -version
+JAVAC=${COMPILEJAVA}${FS}bin${FS}javac
# Current directory is scratch directory, copy all the test source there
# (for the subsequent moves to work).
-${CP} ${TESTSRC}${FS}* ${THIS_DIR}
+${CP} ${TESTSRC}${FS}* ${THIS_DIR}
# A Clean Compile: this line will probably fail within jtreg as have a clean dir:
${RM} -f *.class *.impl many_loader.java
# Compile all the usual suspects, including the default 'many_loader'
${CP} many_loader1.java.foo many_loader.java
-${JAVAC} -source 1.4 -target 1.4 -Xlint *.java
+${JAVAC} ${TESTJAVACOPTS} -source 1.4 -target 1.4 -Xlint *.java
# Rename the class files, so the custom loader (and not the system loader) will find it
${MV} from_loader2.class from_loader2.impl2
@@ -106,7 +57,7 @@ ${MV} from_loader2.class from_loader2.impl2
# Compile the next version of 'many_loader'
${MV} many_loader.class many_loader.impl1
${CP} many_loader2.java.foo many_loader.java
-${JAVAC} -source 1.4 -target 1.4 -Xlint many_loader.java
+${JAVAC} ${TESTJAVACOPTS} -source 1.4 -target 1.4 -Xlint many_loader.java
# Rename the class file, so the custom loader (and not the system loader) will find it
${MV} many_loader.class many_loader.impl2
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6878713/Test6878713.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6878713/Test6878713.sh
index a452ad58..a2b5b2d2 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6878713/Test6878713.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6878713/Test6878713.sh
@@ -1,71 +1,137 @@
#!/bin/sh
+#
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+
+
##
## @test
## @bug 6878713
+## @bug 7030610
+## @bug 7037122
+## @bug 7123945
## @summary Verifier heap corruption, relating to backward jsrs
-## @run shell/timeout=120 Test6878713.sh
+## @run shell Test6878713.sh
##
-
+## some tests require path to find test source dir
if [ "${TESTSRC}" = "" ]
-then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- echo "TESTJAVA not set, selecting " ${TESTJAVA}
- echo "If this is incorrect, try setting the variable manually."
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
-if [ "${TESTCLASSES}" = "" ]
-then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
-fi
+TARGET_CLASS=OOMCrashClass1960_2
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux | Darwin )
- NULL=/dev/null
- PS=":"
- FS="/"
- ;;
- Windows_* )
- NULL=NUL
- PS=";"
- FS="\\"
- ;;
- CYGWIN_* )
- NULL=/dev/null
- PS=";"
- FS="/"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
+echo "INFO: extracting the target class."
+${COMPILEJAVA}${FS}bin${FS}jar xvf \
+ ${TESTSRC}${FS}testcase.jar ${TARGET_CLASS}.class
-JEMMYPATH=${CPAPPEND}
-CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH
+# remove any hs_err_pid that might exist here
+rm -f hs_err_pid*.log
-THIS_DIR=`pwd`
+echo "INFO: checking for 32-bit versus 64-bit VM."
+${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -version 2>&1 \
+ | grep "64-Bit [^ ][^ ]* VM" > /dev/null 2>&1
+status="$?"
+if [ "$status" = 0 ]; then
+ echo "INFO: testing a 64-bit VM."
+ is_64_bit=true
+else
+ echo "INFO: testing a 32-bit VM."
+fi
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -version
+if [ "$is_64_bit" = true ]; then
+ # limit is 768MB in 8-byte words (1024 * 1024 * 768 / 8) == 100663296
+ MALLOC_MAX=100663296
+else
+ # limit is 768MB in 4-byte words (1024 * 1024 * 768 / 4) == 201326592
+ MALLOC_MAX=201326592
+fi
+echo "INFO: MALLOC_MAX=$MALLOC_MAX"
-${TESTJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar
+echo "INFO: executing the target class."
+# -XX:+PrintCommandLineFlags for debugging purposes
+# -XX:+IgnoreUnrecognizedVMOptions so test will run on a VM without
+# the new -XX:MallocMaxTestWords option
+# -XX:+UnlockDiagnosticVMOptions so we can use -XX:MallocMaxTestWords
+# -XX:MallocMaxTestWords limits malloc to $MALLOC_MAX
+${TESTJAVA}${FS}bin${FS}java \
+ -XX:+PrintCommandLineFlags \
+ -XX:+IgnoreUnrecognizedVMOptions \
+ -XX:+UnlockDiagnosticVMOptions \
+ -XX:MallocMaxTestWords=$MALLOC_MAX \
+ ${TESTVMOPTS} ${TARGET_CLASS} > test.out 2>&1
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} OOMCrashClass1960_2 > test.out 2>&1
+echo "INFO: begin contents of test.out:"
+cat test.out
+echo "INFO: end contents of test.out."
-if [ -s core -o -s "hs_*.log" ]
-then
- cat hs*.log
- echo "Test Failed"
- exit 1
+echo "INFO: checking for memory allocation error message."
+# We are looking for this specific memory allocation failure mesg so
+# we know we exercised the right allocation path with the test class:
+MESG1="Native memory allocation (malloc) failed to allocate 25696531[0-9][0-9] bytes"
+grep "$MESG1" test.out
+status="$?"
+if [ "$status" = 0 ]; then
+ echo "INFO: found expected memory allocation error message."
else
- echo "Test Passed"
- exit 0
+ echo "INFO: did not find expected memory allocation error message."
+
+ # If we didn't find MESG1 above, then there are several scenarios:
+ # 1) -XX:MallocMaxTestWords is not supported by the current VM and we
+ # didn't fail TARGET_CLASS's memory allocation attempt; instead
+ # we failed to find TARGET_CLASS's main() method. The TARGET_CLASS
+ # is designed to provoke a memory allocation failure during class
+ # loading; we actually don't care about running the class which is
+ # why it doesn't have a main() method.
+ # 2) we failed a memory allocation, but not the one we were looking
+ # so it might be that TARGET_CLASS no longer tickles the same
+ # memory allocation code path
+ # 3) TARGET_CLASS reproduces the failure mode (SIGSEGV) fixed by
+ # 6878713 because the test is running on a pre-fix VM.
+ echo "INFO: checking for no main() method message."
+ MESG2="Error: Main method not found in class"
+ grep "$MESG2" test.out
+ status="$?"
+ if [ "$status" = 0 ]; then
+ echo "INFO: found no main() method message."
+ else
+ echo "FAIL: did not find no main() method message."
+ # status is non-zero for exit below
+
+ if [ -s hs_err_pid*.log ]; then
+ echo "INFO: begin contents of hs_err_pid file:"
+ cat hs_err_pid*.log
+ echo "INFO: end contents of hs_err_pid file."
+ fi
+ fi
+fi
+
+if [ "$status" = 0 ]; then
+ echo "PASS: test found one of the expected messages."
fi
+exit "$status"
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6929067/Test6929067.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6929067/Test6929067.sh
index e4b649df..b707e096 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6929067/Test6929067.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/6929067/Test6929067.sh
@@ -7,18 +7,15 @@
## @compile T.java
## @run shell Test6929067.sh
##
-
+set -x
if [ "${TESTSRC}" = "" ]
-then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- echo "TESTJAVA not set, selecting " ${TESTJAVA}
- echo "If this is incorrect, try setting the variable manually."
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
# set platform-dependent variables
OS=`uname -s`
@@ -107,7 +104,7 @@ then
fi
-LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
cp ${TESTSRC}${FS}invoke.c .
@@ -115,15 +112,16 @@ cp ${TESTSRC}${FS}invoke.c .
# Copy the result of our @compile action:
cp ${TESTCLASSES}${FS}T.class .
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion
-
echo "Architecture: ${ARCH}"
echo "Compilation flag: ${COMP_FLAG}"
echo "VM type: ${VMTYPE}"
+# Note pthread may not be found thus invoke creation will fail to be created.
+# Check to ensure you have a /usr/lib/libpthread.so if you don't please look
+# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation.
gcc -DLINUX ${COMP_FLAG} -o invoke \
- -I${TESTJAVA}/include -I${TESTJAVA}/include/linux \
- -L${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE} \
+ -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \
+ -L${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE} \
-ljvm -lpthread invoke.c
./invoke
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7020373/Test7020373.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7020373/Test7020373.sh
index 83e7f4c4..83b7028c 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7020373/Test7020373.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7020373/Test7020373.sh
@@ -10,55 +10,15 @@
##
if [ "${TESTSRC}" = "" ]
-then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
-then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- echo "TESTJAVA not set, selecting " ${TESTJAVA}
- echo "If this is incorrect, try setting the variable manually."
-fi
-
-if [ "${TESTCLASSES}" = "" ]
then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux | Darwin )
- NULL=/dev/null
- PS=":"
- FS="/"
- ;;
- Windows_* )
- NULL=NUL
- PS=";"
- FS="\\"
- ;;
- CYGWIN_* )
- NULL=/dev/null
- PS=";"
- FS="/"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-JEMMYPATH=${CPAPPEND}
-CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH
-
-THIS_DIR=`pwd`
-
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -version
-
-${TESTJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar
+${COMPILEJAVA}${FS}bin${FS}jar xvf ${TESTSRC}${FS}testcase.jar
${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} OOMCrashClass4000_1 > test.out 2>&1
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7051189/Xchecksig.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7051189/Xchecksig.sh
index f3eabce5..143e1445 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7051189/Xchecksig.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7051189/Xchecksig.sh
@@ -29,34 +29,22 @@
#
if [ "${TESTSRC}" = "" ]
- then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- printf "TESTJAVA not set, selecting " ${TESTJAVA}
- printf " If this is incorrect, try setting the variable manually.\n"
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
-
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
OS=`uname -s`
case "$OS" in
- SunOS | Linux | Darwin )
- FS="/"
- ;;
Windows_* | CYGWIN_* )
printf "Not testing libjsig.so on Windows. PASSED.\n "
exit 0
;;
- * )
- printf "Not testing libjsig.so on unrecognised system. PASSED.\n "
- exit 0
- ;;
esac
-
JAVA=${TESTJAVA}${FS}bin${FS}java
# LD_PRELOAD arch needs to match the binary we run, so run the java
@@ -97,7 +85,7 @@ case $ARCH in
;;
esac
-LIBJSIG=${TESTJAVA}${FS}jre${FS}lib${FS}${ARCH}${FS}libjsig.so
+LIBJSIG=${COMPILEJAVA}${FS}jre${FS}lib${FS}${ARCH}${FS}libjsig.so
# If libjsig and binary do not match, skip test.
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test.java
new file mode 100644
index 00000000..84f3ab33
--- /dev/null
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2002-2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011 SAP AG. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+class Test {
+
+ static boolean loadLib(String libName){
+ try {
+ System.loadLibrary(libName);
+ System.out.println("Loaded library "+ libName + ".");
+ return true;
+ } catch (SecurityException e) {
+ System.out.println("loadLibrary(\"" + libName + "\") throws: " + e + "\n");
+ } catch (UnsatisfiedLinkError e) {
+ System.out.println("loadLibrary(\"" + libName + "\") throws: " + e + "\n");
+ }
+ return false;
+ }
+
+ public static int counter = 1;
+
+ static int Runner() {
+ counter = counter * -1;
+ int i = counter;
+ if(counter < 2) counter += Runner();
+ return i;
+ }
+
+ public static int run() {
+ try{
+ Runner();
+ } catch (StackOverflowError e) {
+ System.out.println("Caught stack overflow error.");
+ return 0;
+ } catch (OutOfMemoryError e) {
+ return 0;
+ }
+ return 2;
+ }
+
+ public static void main(String argv[]) {
+ loadLib(argv[0]);
+ System.exit(run());
+ }
+}
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test7107135.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test7107135.sh
new file mode 100644
index 00000000..c2834564
--- /dev/null
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/Test7107135.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+#
+# Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011 SAP AG. All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+##
+## @test Test7107135.sh
+## @bug 7107135
+## @summary Stack guard pages lost after loading library with executable stack.
+## @run shell Test7107135.sh
+##
+
+if [ "${TESTSRC}" = "" ]
+then
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
+fi
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+ Linux)
+ echo "Testing on Linux"
+ ;;
+ *)
+ NULL=NUL
+ PS=";"
+ FS="\\"
+ echo "Test passed; only valid for Linux"
+ exit 0;
+ ;;
+esac
+
+ARCH=`uname -m`
+
+THIS_DIR=.
+
+cp ${TESTSRC}${FS}*.java ${THIS_DIR}
+${TESTJAVA}${FS}bin${FS}javac *.java
+
+gcc -fPIC -shared -c -o test.o -I${TESTJAVA}${FS}include -I${TESTJAVA}${FS}include${FS}linux ${TESTSRC}${FS}test.c
+ld -shared -z execstack -o libtest-rwx.so test.o
+ld -shared -z noexecstack -o libtest-rw.so test.o
+
+
+LD_LIBRARY_PATH=${THIS_DIR}
+echo LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}
+export LD_LIBRARY_PATH
+
+# This should not fail.
+echo Check testprogram. Expected to pass:
+echo ${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} Test test-rw
+${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} Test test-rw
+
+echo
+echo Test changing of stack protection:
+echo ${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} Test test-rw
+${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} Test test-rwx
+
+if [ "$?" == "0" ]
+then
+ echo
+ echo ${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} TestMT test-rwx
+ ${TESTJAVA}${FS}bin${FS}java -cp ${THIS_DIR} TestMT test-rwx
+fi
+
+exit $?
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/TestMT.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/TestMT.java
new file mode 100644
index 00000000..edea698a
--- /dev/null
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/TestMT.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2002-2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011 SAP AG. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+class TestMT {
+
+ static boolean loadLib(String libName) {
+ try {
+ System.loadLibrary(libName);
+ System.out.println("Loaded library "+ libName + ".");
+ return true;
+ } catch (SecurityException e) {
+ System.out.println("loadLibrary(\"" + libName + "\") throws: " + e + "\n");
+ } catch (UnsatisfiedLinkError e) {
+ System.out.println("loadLibrary(\"" + libName + "\") throws: " + e + "\n");
+ }
+ return false;
+ }
+
+ public static int counter = 1;
+ static int Runner() {
+ counter = counter * -1;
+ int i = counter;
+ if (counter < 2) counter += Runner();
+ return i;
+ }
+
+ public static int run(String msg) {
+ try {
+ Runner();
+ } catch (StackOverflowError e) {
+ System.out.println(msg + " caught stack overflow error.");
+ return 0;
+ } catch (OutOfMemoryError e) {
+ return 0;
+ }
+ return 2;
+ }
+
+ public static void main(String argv[]) {
+ try {
+ for (int i = 0; i < 20; i++) {
+ Thread t = new DoStackOverflow("SpawnedThread " + i);
+ t.start();
+ }
+ run("Main thread");
+ loadLib("test-rwx");
+ run("Main thread");
+ } catch (Exception e) {
+ System.out.println(e);
+ }
+ }
+
+ static class DoStackOverflow extends Thread {
+ public DoStackOverflow(String name) {
+ super(name);
+ }
+ public void run() {
+ for (int i = 0; i < 10; ++i) {
+ TestMT.run(getName());
+ yield();
+ }
+ }
+ }
+}
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/test.c b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/test.c
new file mode 100644
index 00000000..602063f6
--- /dev/null
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7107135/test.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2002-2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011 SAP AG. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include "jni.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+JNIEXPORT jint JNICALL Java_Test_someMethod(JNIEnv *env, jobject mainObject) {
+ return 3;
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7110720/Test7110720.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7110720/Test7110720.sh
index 0788cb56..b051266f 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7110720/Test7110720.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7110720/Test7110720.sh
@@ -12,22 +12,13 @@
#
if [ "${TESTSRC}" = "" ]
- then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
-then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- echo "TESTJAVA not set, selecting " ${TESTJAVA}
- echo "If this is incorrect, try setting the variable manually."
-fi
-
-if [ "${TESTCLASSES}" = "" ]
then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
# Jtreg sets TESTVMOPTS which may include -d64 which is
# required to test a 64-bit JVM on some platforms.
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7116786/Test7116786.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7116786/Test7116786.java
index 8c137ecd..b9140192 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7116786/Test7116786.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7116786/Test7116786.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -338,9 +338,12 @@ class VerifyErrorCases {
"invalid constant pool index in ldc",
"Invalid index in ldc"),
- new Case("case58", "verifier.cpp", true, "verify_switch",
+ /* No longer a valid test case for bytecode version >= 51. Nonzero
+ * padding bytes are permitted with lookupswitch and tableswitch
+ * bytecodes as of JVMS 3d edition */
+ new Case("case58", "verifier.cpp", false, "verify_switch",
"bad switch padding",
- "Nonzero padding byte in lookswitch or tableswitch"),
+ "Nonzero padding byte in lookupswitch or tableswitch"),
new Case("case59", "verifier.cpp", true, "verify_switch",
"tableswitch low is greater than high",
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7158804/Test7158804.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7158804/Test7158804.sh
index e7f14238..b5380ec8 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7158804/Test7158804.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7158804/Test7158804.sh
@@ -10,13 +10,14 @@
## @summary Improve config file parsing
## @run shell Test7158804.sh
##
-
-if [ "${TESTJAVA}" = "" ]
+if [ "${TESTSRC}" = "" ]
then
- echo "TESTJAVA not set. Test cannot execute. Failed."
- exit 1
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
-echo "TESTJAVA=${TESTJAVA}"
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
rm -f .hotspotrc
echo -XX:+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >.hotspotrc
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7162488/Test7162488.sh b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7162488/Test7162488.sh
index bd70d027..0250f774 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7162488/Test7162488.sh
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/7162488/Test7162488.sh
@@ -29,27 +29,13 @@
#
if [ "${TESTSRC}" = "" ]
- then TESTSRC=.
-fi
-
-if [ "${TESTJAVA}" = "" ]
then
- PARENT=`dirname \`which java\``
- TESTJAVA=`dirname ${PARENT}`
- printf "TESTJAVA not set, selecting " ${TESTJAVA}
- printf " If this is incorrect, try setting the variable manually.\n"
+ TESTSRC=${PWD}
+ echo "TESTSRC not set. Using "${TESTSRC}" as default"
fi
-
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
- Windows_* )
- FS="\\"
- ;;
- * )
- FS="/"
- ;;
-esac
+echo "TESTSRC=${TESTSRC}"
+## Adding common setup Variables for running shell tests.
+. ${TESTSRC}/../../test_env.sh
JAVA=${TESTJAVA}${FS}bin${FS}java
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8003985/Test8003985.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8003985/Test8003985.java
new file mode 100644
index 00000000..5e30f670
--- /dev/null
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8003985/Test8003985.java
@@ -0,0 +1,302 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.lang.Class;
+import java.lang.String;
+import java.lang.System;
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CyclicBarrier;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import sun.misc.Unsafe;
+import sun.misc.Contended;
+
+/*
+ * @test
+ * @bug 8003985
+ * @summary Support Contended Annotation - JEP 142
+ *
+ * @run main/othervm -XX:-RestrictContended Test8003985
+ */
+public class Test8003985 {
+
+ private static final Unsafe U;
+ private static int ADDRESS_SIZE;
+ private static int HEADER_SIZE;
+
+ static {
+ // steal Unsafe
+ try {
+ Field unsafe = Unsafe.class.getDeclaredField("theUnsafe");
+ unsafe.setAccessible(true);
+ U = (Unsafe) unsafe.get(null);
+ } catch (NoSuchFieldException | IllegalAccessException e) {
+ throw new IllegalStateException(e);
+ }
+
+ // When running with CompressedOops on 64-bit platform, the address size
+ // reported by Unsafe is still 8, while the real reference fields are 4 bytes long.
+ // Try to guess the reference field size with this naive trick.
+ try {
+ long off1 = U.objectFieldOffset(CompressedOopsClass.class.getField("obj1"));
+ long off2 = U.objectFieldOffset(CompressedOopsClass.class.getField("obj2"));
+ ADDRESS_SIZE = (int) Math.abs(off2 - off1);
+ HEADER_SIZE = (int) Math.min(off1, off2);
+ } catch (NoSuchFieldException e) {
+ ADDRESS_SIZE = -1;
+ }
+ }
+
+ static class CompressedOopsClass {
+ public Object obj1;
+ public Object obj2;
+ }
+
+ public static boolean arePaddedPairwise(Class klass, String field1, String field2) throws Exception {
+ Field f1 = klass.getDeclaredField(field1);
+ Field f2 = klass.getDeclaredField(field2);
+
+ if (isStatic(f1) != isStatic(f2)) {
+ return true; // these guys are in naturally disjoint locations
+ }
+
+ int diff = offset(f1) - offset(f2);
+ if (diff < 0) {
+ // f1 is first
+ return (offset(f2) - (offset(f1) + getSize(f1))) > 64;
+ } else {
+ // f2 is first
+ return (offset(f1) - (offset(f2) + getSize(f2))) > 64;
+ }
+ }
+
+ public static boolean isPadded(Class klass, String field1) throws Exception {
+ Field f1 = klass.getDeclaredField(field1);
+
+ if (isStatic(f1)) {
+ return offset(f1) > 128 + 64;
+ }
+
+ return offset(f1) > 64;
+ }
+
+ public static boolean sameLayout(Class klass1, Class klass2) throws Exception {
+ for (Field f1 : klass1.getDeclaredFields()) {
+ Field f2 = klass2.getDeclaredField(f1.getName());
+ if (offset(f1) != offset(f2)) {
+ return false;
+ }
+ }
+
+ for (Field f2 : klass1.getDeclaredFields()) {
+ Field f1 = klass2.getDeclaredField(f2.getName());
+ if (offset(f1) != offset(f2)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public static boolean isStatic(Field field) {
+ return Modifier.isStatic(field.getModifiers());
+ }
+
+ public static int offset(Field field) {
+ if (isStatic(field)) {
+ return (int) U.staticFieldOffset(field);
+ } else {
+ return (int) U.objectFieldOffset(field);
+ }
+ }
+
+ public static int getSize(Field field) {
+ Class type = field.getType();
+ if (type == byte.class) { return 1; }
+ if (type == boolean.class) { return 1; }
+ if (type == short.class) { return 2; }
+ if (type == char.class) { return 2; }
+ if (type == int.class) { return 4; }
+ if (type == float.class) { return 4; }
+ if (type == long.class) { return 8; }
+ if (type == double.class) { return 8; }
+ return ADDRESS_SIZE;
+ }
+
+ public static void main(String[] args) throws Exception {
+ boolean endResult = true;
+
+ // --------------- INSTANCE FIELDS ---------------------
+
+ if (arePaddedPairwise(Test1.class, "int1", "int2") ||
+ isPadded(Test1.class, "int1") ||
+ isPadded(Test1.class, "int2")) {
+ System.err.println("Test1 failed");
+ endResult &= false;
+ }
+
+ if (!arePaddedPairwise(Test2.class, "int1", "int2") ||
+ !isPadded(Test2.class, "int1") ||
+ isPadded(Test2.class, "int2")) {
+ System.err.println("Test2 failed");
+ endResult &= false;
+ }
+
+ if (!arePaddedPairwise(Test3.class, "int1", "int2") ||
+ !isPadded(Test3.class, "int1") ||
+ !isPadded(Test3.class, "int2")) {
+ System.err.println("Test3 failed");
+ endResult &= false;
+ }
+
+ if (arePaddedPairwise(Test4.class, "int1", "int2") ||
+ !isPadded(Test4.class, "int1") ||
+ !isPadded(Test4.class, "int2")) {
+ System.err.println("Test4 failed");
+ endResult &= false;
+ }
+
+ if (!arePaddedPairwise(Test5.class, "int1", "int2") ||
+ !isPadded(Test5.class, "int1") ||
+ !isPadded(Test5.class, "int2")) {
+ System.err.println("Test5 failed");
+ endResult &= false;
+ }
+
+ if (!arePaddedPairwise(Test6.class, "int1", "int2") ||
+ !isPadded(Test6.class, "int1") ||
+ !isPadded(Test6.class, "int2")) {
+ System.err.println("Test6 failed");
+ endResult &= false;
+ }
+
+ if (arePaddedPairwise(Test7.class, "int1", "int2") ||
+ !isPadded(Test7.class, "int1") ||
+ !isPadded(Test7.class, "int2")) {
+ System.err.println("Test7 failed");
+ endResult &= false;
+ }
+
+ if (!arePaddedPairwise(Test8.class, "int1", "int2") ||
+ !isPadded(Test8.class, "int1") ||
+ !isPadded(Test8.class, "int2")) {
+ System.err.println("Test8 failed");
+ endResult &= false;
+ }
+
+ if (!arePaddedPairwise(Test9.class, "int1", "int2") ||
+ !isPadded(Test9.class, "int1") ||
+ !isPadded(Test9.class, "int2")) {
+ System.err.println("Test9 failed");
+ endResult &= false;
+ }
+
+ if (!sameLayout(Test4.class, Test7.class)) {
+ System.err.println("Test4 and Test7 have different layouts");
+ endResult &= false;
+ }
+
+ if (!sameLayout(Test5.class, Test6.class)) {
+ System.err.println("Test5 and Test6 have different layouts");
+ endResult &= false;
+ }
+
+ if (!sameLayout(Test8.class, Test9.class)) {
+ System.err.println("Test8 and Test9 have different layouts");
+ endResult &= false;
+ }
+
+ System.out.println(endResult ? "Test PASSES" : "Test FAILS");
+ if (!endResult) {
+ throw new Error("Test failed");
+ }
+ }
+
+ // ----------------------------------- INSTANCE FIELDS -----------------------------------------
+
+ // naturally packed
+ public static class Test1 {
+ private int int1;
+ private int int2;
+ }
+
+ // int1 is padded
+ public static class Test2 {
+ @Contended private int int1;
+ private int int2;
+ }
+
+ // both fields are padded
+ public static class Test3 {
+ @Contended private int int1;
+ @Contended private int int2;
+ }
+
+ // fields are padded in the singular group
+ public static class Test4 {
+ @Contended("sameGroup") private int int1;
+ @Contended("sameGroup") private int int2;
+ }
+
+ // fields are padded in disjoint groups
+ public static class Test5 {
+ @Contended("diffGroup1") private int int1;
+ @Contended("diffGroup2") private int int2;
+ }
+
+ // fields are padded in disjoint groups
+ public static class Test6 {
+ @Contended private int int1;
+ @Contended("diffGroup2") private int int2;
+ }
+
+ // fields are padded in the singular group
+ @Contended
+ public static class Test7 {
+ private int int1;
+ private int int2;
+ }
+
+ // all fields are padded as the group, and one field is padded specifically
+ @Contended
+ public static class Test8 {
+ @Contended private int int1;
+ private int int2;
+ }
+
+ // all fields are padded as the group, and one field is padded specifically
+ @Contended
+ public static class Test9 {
+ @Contended("group") private int int1;
+ private int int2;
+ }
+
+}
+
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8007736/TestStaticIF.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8010389/VMThreadDlopen.java
index d3c3239e..04407233 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8007736/TestStaticIF.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/8010389/VMThreadDlopen.java
@@ -19,26 +19,26 @@
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
- *
*/
+import java.io.File;
+
/*
* @test
- * @bug 8007736
- * @summary Test static interface method.
- * @run main/othervm -Xverify:all TestStaticIF
+ * @key regression
+ * @bug 8010389
+ * @run main/othervm -Djava.library.path=. VMThreadDlopen
*/
-public class TestStaticIF implements StaticMethodInInterface {
-
- public static void main(String[] args) {
- System.out.printf("main: %s%n", StaticMethodInInterface.get());
- }
-}
-
-interface StaticMethodInInterface {
-
- public static String get() {
- return "Hello from StaticMethodInInterface.get()";
+public class VMThreadDlopen {
+ public static void main(String[] args) throws Exception {
+ File file = new File("libbroken.so");
+ file.createNewFile();
+ try {
+ System.loadLibrary("broken");
+ } catch (UnsatisfiedLinkError e) {
+ e.printStackTrace();
+ // expected
+ }
}
}
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/BooleanFlagWithInvalidValue.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/BooleanFlagWithInvalidValue.java
index 85f533a8..be035e2c 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/BooleanFlagWithInvalidValue.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/BooleanFlagWithInvalidValue.java
@@ -33,17 +33,17 @@ import com.oracle.java.testlibrary.*;
public class BooleanFlagWithInvalidValue {
public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
- "-XX:+UseLargePages=8", "-version");
+ "-XX:+PrintWarnings=8", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("Improperly specified VM option 'UseLargePages=8'");
+ output.shouldContain("Improperly specified VM option 'PrintWarnings=8'");
output.shouldHaveExitValue(1);
pb = ProcessTools.createJavaProcessBuilder(
- "-XX:-UseLargePages=8", "-version");
+ "-XX:-PrintWarnings=8", "-version");
output = new OutputAnalyzer(pb.start());
- output.shouldContain("Improperly specified VM option 'UseLargePages=8'");
+ output.shouldContain("Improperly specified VM option 'PrintWarnings=8'");
output.shouldHaveExitValue(1);
}
}
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/FlagWithInvalidValue.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/FlagWithInvalidValue.java
index 9d475c21..22abc53c 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/FlagWithInvalidValue.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/FlagWithInvalidValue.java
@@ -33,10 +33,10 @@ import com.oracle.java.testlibrary.*;
public class FlagWithInvalidValue {
public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
- "-XX:ObjectAlignmentInBytes=v", "-version");
+ "-XX:MaxRAMFraction=v", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("Improperly specified VM option 'ObjectAlignmentInBytes=v'");
+ output.shouldContain("Improperly specified VM option 'MaxRAMFraction=v'");
output.shouldHaveExitValue(1);
}
}
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java
index d84570eb..7933aef1 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java
@@ -33,17 +33,17 @@ import com.oracle.java.testlibrary.*;
public class NonBooleanFlagWithInvalidBooleanPrefix {
public static void main(String[] args) throws Exception {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
- "-XX:-ObjectAlignmentInBytes=16", "-version");
+ "-XX:-MaxRAMFraction=16", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("Unexpected +/- setting in VM option 'ObjectAlignmentInBytes=16'");
+ output.shouldContain("Unexpected +/- setting in VM option 'MaxRAMFraction=16'");
output.shouldHaveExitValue(1);
pb = ProcessTools.createJavaProcessBuilder(
- "-XX:+ObjectAlignmentInBytes=16", "-version");
+ "-XX:+MaxRAMFraction=16", "-version");
output = new OutputAnalyzer(pb.start());
- output.shouldContain("Unexpected +/- setting in VM option 'ObjectAlignmentInBytes=16'");
+ output.shouldContain("Unexpected +/- setting in VM option 'MaxRAMFraction=16'");
output.shouldHaveExitValue(1);
}
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/BaselineWithParameter.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/BaselineWithParameter.java
index 594bd716..ff10b28a 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/BaselineWithParameter.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/BaselineWithParameter.java
@@ -43,7 +43,7 @@ public class BaselineWithParameter {
// Run 'jcmd <pid> VM.native_memory baseline=false'
pb.command(new String[] { JDKToolFinder.getJDKTool("jcmd"), pid, "VM.native_memory", "baseline=false"});
- pb.start();
+ pb.start().waitFor();
// Run 'jcmd <pid> VM.native_memory summary=false'
pb.command(new String[] { JDKToolFinder.getJDKTool("jcmd"), pid, "VM.native_memory", "summary=false"});
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/PrintNMTStatistics.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/PrintNMTStatistics.java
index 084a8151..96bc2f32 100644
--- a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/PrintNMTStatistics.java
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/NMT/PrintNMTStatistics.java
@@ -27,7 +27,9 @@
* @bug 8005936
* @summary Make sure PrintNMTStatistics works on normal JVM exit
* @library /testlibrary /testlibrary/whitebox
- * @run compile PrintNMTStatistics.java
+ * @build PrintNMTStatistics
+ * @run main ClassFileInstaller sun.hotspot.WhiteBox
+ * @run main PrintNMTStatistics
*/
import com.oracle.java.testlibrary.*;
@@ -52,13 +54,15 @@ public class PrintNMTStatistics {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
"-XX:+UnlockDiagnosticVMOptions",
+ "-Xbootclasspath/a:.",
+ "-XX:+WhiteBoxAPI",
"-XX:NativeMemoryTracking=summary",
- "+XX:+PrintNMTStatistics",
+ "-XX:+PrintNMTStatistics",
"PrintNMTStatistics",
"test");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("Java Heap (reserved=");
+ output.shouldContain("Java Heap (reserved=");
output.shouldNotContain("error");
output.shouldNotContain("warning");
output.shouldHaveExitValue(0);
diff --git a/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/interned/SanityTest.java b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/interned/SanityTest.java
new file mode 100644
index 00000000..779d3fc7
--- /dev/null
+++ b/openjdk8-aarch64-port-snapshot/hotspot/test/runtime/interned/SanityTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test SanityTest
+ * @summary Sanity check of String.intern() & GC
+ * @library /testlibrary /testlibrary/whitebox
+ * @build SanityTest
+ * @run main ClassFileInstaller sun.hotspot.WhiteBox
+ * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI SanityTest
+ */
+
+import java.util.*;
+import sun.hotspot.WhiteBox;
+
+
+public class SanityTest {
+ public static Object tmp;
+ public static void main(String... args) {
+
+ WhiteBox wb = WhiteBox.getWhiteBox();
+ StringBuilder sb = new StringBuilder();
+ sb.append("1234x"); sb.append("x56789");
+ String str = sb.toString();
+
+ if (wb.isInStringTable(str)) {
+ throw new RuntimeException("String " + str + " is already interned");
+ }
+ str.intern();
+ if (!wb.isInStringTable(str)) {
+ throw new RuntimeException("String " + str + " is not interned");
+ }
+ str = sb.toString();
+ wb.fullGC();
+ if (wb.isInStringTable(str)) {
+ throw new RuntimeException("String " + str + " is in StringTable even after GC");
+ }
+ }
+}