Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
8179317: [TESTBUG] rewrite runtime shell tests in java
Converted shell tests to Java Reviewed-by: dholmes, iignatyev, lmesnik
- Loading branch information
Showing
with
478 additions
and 305 deletions.
- +3 −1 make/test/JtregNativeHotspot.gmk
- +1 −1 test/hotspot/jtreg/TEST.groups
- +0 −63 test/hotspot/jtreg/runtime/7162488/Test7162488.sh
- +45 −0 test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java
- +53 −0 test/hotspot/jtreg/runtime/StackGap/TestStackGap.java
- +0 −49 test/hotspot/jtreg/runtime/StackGap/testme.sh
- +52 −0 test/hotspot/jtreg/runtime/StackGuardPages/TestStackGuardPages.java
- +0 −51 test/hotspot/jtreg/runtime/StackGuardPages/testme.sh
- +62 −0 test/hotspot/jtreg/runtime/TLS/TestTLS.java
- +0 −52 test/hotspot/jtreg/runtime/TLS/testtls.sh
- +3 −28 test/hotspot/jtreg/runtime/signal/SigTestDriver.java
- +6 −13 ...base/metaspace/flags/maxMetaspaceSize/TestDescription.java → testlibrary_tests/process/Test.java}
- +44 −0 test/hotspot/jtreg/testlibrary_tests/process/TestNativeProcessBuilder.java
- +76 −0 test/hotspot/jtreg/testlibrary_tests/process/exejvm-test-launcher.c
- +54 −0 test/hotspot/jtreg/vmTestbase/metaspace/flags/maxMetaspaceSize/TestMaxMetaspaceSize.java
- +0 −45 test/hotspot/jtreg/vmTestbase/metaspace/flags/maxMetaspaceSize/maxMetaspaceSize.sh
- +33 −1 test/lib/jdk/test/lib/Platform.java
- +46 −1 test/lib/jdk/test/lib/process/ProcessTools.java
@@ -0,0 +1,45 @@ | ||
/* | ||
* Copyright (c) 2020, 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 7162488 | ||
* @summary VM should print unrecognized -XX option | ||
* @library /test/lib | ||
* @run driver TestUnrecognizedVmOption | ||
*/ | ||
import jdk.test.lib.process.OutputAnalyzer; | ||
import jdk.test.lib.process.ProcessTools; | ||
|
||
public class TestUnrecognizedVmOption { | ||
static final String OPTION="this_is_not_an_option"; | ||
|
||
public static void main(String[] args) throws Exception { | ||
ProcessBuilder pb = | ||
ProcessTools.createJavaProcessBuilder(true, "-showversion", "-XX:" + OPTION); | ||
new OutputAnalyzer(pb.start()) | ||
.shouldNotHaveExitValue(0) | ||
.shouldContain("Unrecognized VM option") | ||
.shouldContain(OPTION); | ||
} | ||
} |
@@ -0,0 +1,53 @@ | ||
/* | ||
* Copyright (c) 2020, 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 | ||
* @summary Linux kernel stack guard should not cause segfaults on x86-32 | ||
* @modules java.base/jdk.internal.misc | ||
* @library /test/lib | ||
* @requires os.family == "linux" | ||
* @compile T.java | ||
* @run main/native TestStackGap | ||
*/ | ||
|
||
|
||
import jdk.test.lib.Utils; | ||
import jdk.test.lib.process.ProcessTools; | ||
import jdk.test.lib.process.OutputAnalyzer; | ||
|
||
public class TestStackGap { | ||
public static void main(String args[]) throws Exception { | ||
ProcessBuilder pb = ProcessTools.createNativeTestProcessBuilder("stack-gap"); | ||
pb.environment().put("CLASSPATH", Utils.TEST_CLASS_PATH); | ||
new OutputAnalyzer(pb.start()) | ||
.shouldHaveExitValue(0); | ||
|
||
pb = ProcessTools.createNativeTestProcessBuilder("stack-gap", | ||
"-XX:+DisablePrimordialThreadGuardPages"); | ||
pb.environment().put("CLASSPATH", Utils.TEST_CLASS_PATH); | ||
new OutputAnalyzer(pb.start()) | ||
.shouldHaveExitValue(0); | ||
} | ||
} | ||
|
@@ -0,0 +1,52 @@ | ||
/* | ||
* Copyright (c) 2020, 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 | ||
* @summary Stack guard pages should be installed correctly and removed when thread is detached | ||
* @modules java.base/jdk.internal.misc | ||
* @library /test/lib | ||
* @requires os.family == "linux" | ||
* @compile DoOverflow.java | ||
* @run main/native TestStackGuardPages | ||
*/ | ||
import jdk.test.lib.Utils; | ||
import jdk.test.lib.process.ProcessTools; | ||
import jdk.test.lib.process.OutputAnalyzer; | ||
|
||
|
||
public class TestStackGuardPages { | ||
public static void main(String args[]) throws Exception { | ||
ProcessBuilder pb = ProcessTools.createNativeTestProcessBuilder("invoke", | ||
"test_java_overflow"); | ||
pb.environment().put("CLASSPATH", Utils.TEST_CLASS_PATH); | ||
new OutputAnalyzer(pb.start()) | ||
.shouldHaveExitValue(0); | ||
|
||
pb = ProcessTools.createNativeTestProcessBuilder("invoke", "test_native_overflow"); | ||
pb.environment().put("CLASSPATH", Utils.TEST_CLASS_PATH); | ||
new OutputAnalyzer(pb.start()) | ||
.shouldHaveExitValue(0); | ||
} | ||
} | ||
|
Oops, something went wrong.