Skip to content

Commit 92ff652

Browse files
committed
8272970: Parallelize runtime/InvocationTests/
Backport-of: 6cfe314262dacd6ca1a74c000d045b1cabd374db
1 parent c2dc88f commit 92ff652

File tree

6 files changed

+238
-48
lines changed

6 files changed

+238
-48
lines changed

test/hotspot/jtreg/ProblemList.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java 8241293 macosx-x64
9191

9292
runtime/cds/appcds/jigsaw/modulepath/ModulePathAndCP_JFR.java 8253437 windows-x64
9393
runtime/cds/DeterministicDump.java 8253495 generic-all
94-
runtime/InvocationTests/invokevirtualTests.java 8271125 generic-all
94+
runtime/InvocationTests/invokevirtualTests.java#current-int 8271125 generic-all
95+
runtime/InvocationTests/invokevirtualTests.java#current-comp 8271125 generic-all
96+
runtime/InvocationTests/invokevirtualTests.java#old-int 8271125 generic-all
9597
runtime/jni/terminatedThread/TestTerminatedThread.java 8219652 aix-ppc64
9698
runtime/os/TestTracePageSizes.java#no-options 8267460 linux-aarch64
9799
runtime/os/TestTracePageSizes.java#explicit-large-page-size 8267460 linux-aarch64

test/hotspot/jtreg/runtime/InvocationTests/invocationC1Tests.java

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,41 @@
2323
*/
2424

2525
/*
26-
* @test
26+
* @test id=special
2727
* @bug 8226956
2828
* @summary Run invocation tests against C1 compiler
2929
* @library /test/lib
3030
* @modules java.base/jdk.internal.org.objectweb.asm
3131
* java.base/jdk.internal.misc
32-
* @compile shared/AbstractGenerator.java shared/AccessCheck.java shared/AccessType.java
33-
* shared/Caller.java shared/ExecutorGenerator.java shared/Utils.java
34-
* shared/ByteArrayClassLoader.java shared/Checker.java shared/GenericClassGenerator.java
3532
* @compile invokespecial/Checker.java invokespecial/ClassGenerator.java invokespecial/Generator.java
36-
* invokevirtual/Checker.java invokevirtual/ClassGenerator.java invokevirtual/Generator.java
37-
* invokeinterface/Checker.java invokeinterface/ClassGenerator.java invokeinterface/Generator.java
3833
*
39-
* @run driver/timeout=1800 invocationC1Tests
34+
* @run driver/timeout=1800 invocationC1Tests special
35+
*/
36+
37+
/*
38+
* @test id=virtual
39+
* @bug 8226956
40+
* @summary Run invocation tests against C1 compiler
41+
* @requires vm.flagless
42+
* @library /test/lib
43+
* @modules java.base/jdk.internal.org.objectweb.asm
44+
* java.base/jdk.internal.misc
45+
* @compile invokevirtual/Checker.java invokevirtual/ClassGenerator.java invokevirtual/Generator.java
46+
*
47+
* @run driver/timeout=1800 invocationC1Tests virtual
48+
*/
49+
50+
/*
51+
* @test id=interface
52+
* @bug 8226956
53+
* @summary Run invocation tests against C1 compiler
54+
* @requires vm.flagless
55+
* @library /test/lib
56+
* @modules java.base/jdk.internal.org.objectweb.asm
57+
* java.base/jdk.internal.misc
58+
* @compile invokeinterface/Checker.java invokeinterface/ClassGenerator.java invokeinterface/Generator.java
59+
*
60+
* @run driver/timeout=1800 invocationC1Tests interface
4061
*/
4162

4263
import jdk.test.lib.process.ProcessTools;
@@ -72,11 +93,27 @@ public static void runTest(String whichTests, String classFileVersion) throws Th
7293
}
7394

7495
public static void main(String args[]) throws Throwable {
96+
if (args.length < 1) {
97+
throw new IllegalArgumentException("Should provide the test name");
98+
}
99+
String testName = args[0];
100+
75101
// Get current major class file version and test with it.
76102
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
77103
int major_version = klassbuf[6] << 8 | klassbuf[7];
78-
runTest("invokespecial.Generator", String.valueOf(major_version));
79-
runTest("invokeinterface.Generator", String.valueOf(major_version));
80-
runTest("invokevirtual.Generator", String.valueOf(major_version));
104+
105+
switch (testName) {
106+
case "special":
107+
runTest("invokespecial.Generator", String.valueOf(major_version));
108+
break;
109+
case "virtual":
110+
runTest("invokevirtual.Generator", String.valueOf(major_version));
111+
break;
112+
case "interface":
113+
runTest("invokeinterface.Generator", String.valueOf(major_version));
114+
break;
115+
default:
116+
throw new IllegalArgumentException("Unknown test name: " + testName);
117+
}
81118
}
82119
}

test/hotspot/jtreg/runtime/InvocationTests/invocationOldCHATests.java

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,38 @@
2323
*/
2424

2525
/*
26-
* @test
26+
* @test id=special
2727
* @summary Run invocation tests with old CHA (-XX:-UseVtableBasedCHA)
2828
* @library /test/lib
2929
* @modules java.base/jdk.internal.org.objectweb.asm
3030
* java.base/jdk.internal.misc
31-
* @compile shared/AbstractGenerator.java shared/AccessCheck.java shared/AccessType.java
32-
* shared/Caller.java shared/ExecutorGenerator.java shared/Utils.java
33-
* shared/ByteArrayClassLoader.java shared/Checker.java shared/GenericClassGenerator.java
3431
* @compile invokespecial/Checker.java invokespecial/ClassGenerator.java invokespecial/Generator.java
35-
* invokevirtual/Checker.java invokevirtual/ClassGenerator.java invokevirtual/Generator.java
36-
* invokeinterface/Checker.java invokeinterface/ClassGenerator.java invokeinterface/Generator.java
3732
*
38-
* @run driver/timeout=1800 invocationOldCHATests
33+
* @run driver/timeout=1800 invocationOldCHATests special
34+
*/
35+
36+
/*
37+
* @test id=virtual
38+
* @summary Run invocation tests with old CHA (-XX:-UseVtableBasedCHA)
39+
* @requires vm.flagless
40+
* @library /test/lib
41+
* @modules java.base/jdk.internal.org.objectweb.asm
42+
* java.base/jdk.internal.misc
43+
* @compile invokevirtual/Checker.java invokevirtual/ClassGenerator.java invokevirtual/Generator.java
44+
*
45+
* @run driver/timeout=1800 invocationOldCHATests virtual
46+
*/
47+
48+
/*
49+
* @test id=interface
50+
* @summary Run invocation tests with old CHA (-XX:-UseVtableBasedCHA)
51+
* @requires vm.flagless
52+
* @library /test/lib
53+
* @modules java.base/jdk.internal.org.objectweb.asm
54+
* java.base/jdk.internal.misc
55+
* @compile invokeinterface/Checker.java invokeinterface/ClassGenerator.java invokeinterface/Generator.java
56+
*
57+
* @run driver/timeout=1800 invocationOldCHATests interface
3958
*/
4059

4160
import jdk.test.lib.process.ProcessTools;
@@ -71,11 +90,27 @@ public static void runTest(String whichTests, String classFileVersion) throws Th
7190
}
7291

7392
public static void main(String args[]) throws Throwable {
93+
if (args.length < 1) {
94+
throw new IllegalArgumentException("Should provide the test name");
95+
}
96+
String testName = args[0];
97+
7498
// Get current major class file version and test with it.
7599
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
76100
int major_version = klassbuf[6] << 8 | klassbuf[7];
77-
runTest("invokespecial.Generator", String.valueOf(major_version));
78-
runTest("invokeinterface.Generator", String.valueOf(major_version));
79-
runTest("invokevirtual.Generator", String.valueOf(major_version));
101+
102+
switch (testName) {
103+
case "special":
104+
runTest("invokespecial.Generator", String.valueOf(major_version));
105+
break;
106+
case "virtual":
107+
runTest("invokevirtual.Generator", String.valueOf(major_version));
108+
break;
109+
case "interface":
110+
runTest("invokeinterface.Generator", String.valueOf(major_version));
111+
break;
112+
default:
113+
throw new IllegalArgumentException("Unknown test name: " + testName);
114+
}
80115
}
81116
}

test/hotspot/jtreg/runtime/InvocationTests/invokeinterfaceTests.java

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,44 @@
2323
*/
2424

2525
/*
26-
* @test
26+
* @test id=current-int
2727
* @bug 8224137
2828
* @summary Run invokeinterface invocation tests
2929
* @library /test/lib
3030
* @modules java.base/jdk.internal.org.objectweb.asm
3131
* java.base/jdk.internal.misc
32-
* @compile shared/AbstractGenerator.java shared/AccessCheck.java shared/AccessType.java
33-
* shared/Caller.java shared/ExecutorGenerator.java shared/Utils.java
34-
* shared/ByteArrayClassLoader.java shared/Checker.java shared/GenericClassGenerator.java
3532
* @compile invokeinterface/Checker.java invokeinterface/ClassGenerator.java
3633
* invokeinterface/Generator.java
3734
*
38-
* @run driver/timeout=1800 invokeinterfaceTests
35+
* @run driver/timeout=1800 invokeinterfaceTests current-int
36+
*/
37+
38+
/*
39+
* @test id=current-comp
40+
* @bug 8224137
41+
* @summary Run invokeinterface invocation tests
42+
* @requires vm.flagless
43+
* @library /test/lib
44+
* @modules java.base/jdk.internal.org.objectweb.asm
45+
* java.base/jdk.internal.misc
46+
* @compile invokeinterface/Checker.java invokeinterface/ClassGenerator.java
47+
* invokeinterface/Generator.java
48+
*
49+
* @run driver/timeout=1800 invokeinterfaceTests current-comp
50+
*/
51+
52+
/*
53+
* @test id=old-int
54+
* @bug 8224137
55+
* @summary Run invokeinterface invocation tests
56+
* @requires vm.flagless
57+
* @library /test/lib
58+
* @modules java.base/jdk.internal.org.objectweb.asm
59+
* java.base/jdk.internal.misc
60+
* @compile invokeinterface/Checker.java invokeinterface/ClassGenerator.java
61+
* invokeinterface/Generator.java
62+
*
63+
* @run driver/timeout=1800 invokeinterfaceTests old-int
3964
*/
4065

4166
import jdk.test.lib.process.ProcessTools;
@@ -70,13 +95,28 @@ public static void runTest(String classFileVersion, String option) throws Throwa
7095
}
7196

7297
public static void main(String args[]) throws Throwable {
98+
if (args.length < 1) {
99+
throw new IllegalArgumentException("Should provide the test name");
100+
}
101+
String testName = args[0];
102+
73103
// Get current major class file version and test with it.
74104
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
75105
int major_version = klassbuf[6] << 8 | klassbuf[7];
76-
runTest(String.valueOf(major_version), "-Xint");
77-
runTest(String.valueOf(major_version), "-Xcomp");
78106

79-
// Test old class file version.
80-
runTest("51", "-Xint"); // JDK-7
107+
switch (testName) {
108+
case "current-int":
109+
runTest(String.valueOf(major_version), "-Xint");
110+
break;
111+
case "current-comp":
112+
runTest(String.valueOf(major_version), "-Xcomp");
113+
break;
114+
case "old-int":
115+
// Test old class file version.
116+
runTest("51", "-Xint"); // JDK-7
117+
break;
118+
default:
119+
throw new IllegalArgumentException("Unknown test name: " + testName);
120+
}
81121
}
82122
}

test/hotspot/jtreg/runtime/InvocationTests/invokespecialTests.java

Lines changed: 47 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,41 @@
2323
*/
2424

2525
/*
26-
* @test
26+
* @test id=current-int
2727
* @bug 8224137
2828
* @summary Run invokespecial invocation tests
2929
* @library /test/lib
3030
* @modules java.base/jdk.internal.org.objectweb.asm
3131
* java.base/jdk.internal.misc
32-
* @compile shared/AbstractGenerator.java shared/AccessCheck.java shared/AccessType.java
33-
* shared/Caller.java shared/ExecutorGenerator.java shared/Utils.java
34-
* shared/ByteArrayClassLoader.java shared/Checker.java shared/GenericClassGenerator.java
3532
* @compile invokespecial/Checker.java invokespecial/ClassGenerator.java invokespecial/Generator.java
3633
*
37-
* @run driver/timeout=1800 invokespecialTests
34+
* @run driver/timeout=1800 invokespecialTests current-int
35+
*/
36+
37+
/*
38+
* @test id=current-comp
39+
* @bug 8224137
40+
* @summary Run invokespecial invocation tests
41+
* @requires vm.flagless
42+
* @library /test/lib
43+
* @modules java.base/jdk.internal.org.objectweb.asm
44+
* java.base/jdk.internal.misc
45+
* @compile invokespecial/Checker.java invokespecial/ClassGenerator.java invokespecial/Generator.java
46+
*
47+
* @run driver/timeout=1800 invokespecialTests current-comp
48+
*/
49+
50+
/*
51+
* @test id=old-int
52+
* @bug 8224137
53+
* @summary Run invokespecial invocation tests
54+
* @requires vm.flagless
55+
* @library /test/lib
56+
* @modules java.base/jdk.internal.org.objectweb.asm
57+
* java.base/jdk.internal.misc
58+
* @compile invokespecial/Checker.java invokespecial/ClassGenerator.java invokespecial/Generator.java
59+
*
60+
* @run driver/timeout=1800 invokespecialTests old-int
3861
*/
3962

4063
import jdk.test.lib.process.ProcessTools;
@@ -69,13 +92,28 @@ public static void runTest(String classFileVersion, String option) throws Throwa
6992
}
7093

7194
public static void main(String args[]) throws Throwable {
95+
if (args.length < 1) {
96+
throw new IllegalArgumentException("Should provide the test name");
97+
}
98+
String testName = args[0];
99+
72100
// Get current major class file version and test with it.
73101
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
74102
int major_version = klassbuf[6] << 8 | klassbuf[7];
75-
runTest(String.valueOf(major_version), "-Xint");
76-
runTest(String.valueOf(major_version), "-Xcomp");
77103

78-
// Test old class file version.
79-
runTest("51", "-Xint"); // JDK-7
104+
switch (testName) {
105+
case "current-int":
106+
runTest(String.valueOf(major_version), "-Xint");
107+
break;
108+
case "current-comp":
109+
runTest(String.valueOf(major_version), "-Xcomp");
110+
break;
111+
case "old-int":
112+
// Test old class file version.
113+
runTest("51", "-Xint"); // JDK-7
114+
break;
115+
default:
116+
throw new IllegalArgumentException("Unknown test name: " + testName);
117+
}
80118
}
81119
}

0 commit comments

Comments
 (0)