Skip to content

Commit 6cfe314

Browse files
committed
8272970: Parallelize runtime/InvocationTests/
Reviewed-by: dholmes, iignatyev
1 parent a9a83b2 commit 6cfe314

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
@@ -92,7 +92,9 @@ gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java 8241293 macosx-x64
9292

9393
runtime/cds/appcds/jigsaw/modulepath/ModulePathAndCP_JFR.java 8253437 windows-x64
9494
runtime/cds/DeterministicDump.java 8253495 generic-all
95-
runtime/InvocationTests/invokevirtualTests.java 8271125 generic-all
95+
runtime/InvocationTests/invokevirtualTests.java#current-int 8271125 generic-all
96+
runtime/InvocationTests/invokevirtualTests.java#current-comp 8271125 generic-all
97+
runtime/InvocationTests/invokevirtualTests.java#old-int 8271125 generic-all
9698
runtime/jni/terminatedThread/TestTerminatedThread.java 8219652 aix-ppc64
9799
runtime/os/TestTracePageSizes.java#no-options 8267460 linux-aarch64
98100
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,21 +23,42 @@
2323
*/
2424

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

4364
import jdk.test.lib.process.ProcessTools;
@@ -73,11 +94,27 @@ public static void runTest(String whichTests, String classFileVersion) throws Th
7394
}
7495

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

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

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

2525
/*
26-
* @test
26+
* @test id=special
2727
* @summary Run invocation tests with old CHA (-XX:-UseVtableBasedCHA)
2828
* @requires vm.flagless
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 invocationOldCHATests
34+
* @run driver/timeout=1800 invocationOldCHATests special
35+
*/
36+
37+
/*
38+
* @test id=virtual
39+
* @summary Run invocation tests with old CHA (-XX:-UseVtableBasedCHA)
40+
* @requires vm.flagless
41+
* @library /test/lib
42+
* @modules java.base/jdk.internal.org.objectweb.asm
43+
* java.base/jdk.internal.misc
44+
* @compile invokevirtual/Checker.java invokevirtual/ClassGenerator.java invokevirtual/Generator.java
45+
*
46+
* @run driver/timeout=1800 invocationOldCHATests virtual
47+
*/
48+
49+
/*
50+
* @test id=interface
51+
* @summary Run invocation tests with old CHA (-XX:-UseVtableBasedCHA)
52+
* @requires vm.flagless
53+
* @library /test/lib
54+
* @modules java.base/jdk.internal.org.objectweb.asm
55+
* java.base/jdk.internal.misc
56+
* @compile invokeinterface/Checker.java invokeinterface/ClassGenerator.java invokeinterface/Generator.java
57+
*
58+
* @run driver/timeout=1800 invocationOldCHATests interface
4059
*/
4160

4261
import jdk.test.lib.process.ProcessTools;
@@ -72,11 +91,27 @@ public static void runTest(String whichTests, String classFileVersion) throws Th
7291
}
7392

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

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

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

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

4267
import jdk.test.lib.process.ProcessTools;
@@ -71,13 +96,28 @@ public static void runTest(String classFileVersion, String option) throws Throwa
7196
}
7297

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

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

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

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

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

4164
import jdk.test.lib.process.ProcessTools;
@@ -70,13 +93,28 @@ public static void runTest(String classFileVersion, String option) throws Throwa
7093
}
7194

7295
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+
73101
// Get current major class file version and test with it.
74102
byte klassbuf[] = InMemoryJavaCompiler.compile("blah", "public class blah { }");
75103
int major_version = klassbuf[6] << 8 | klassbuf[7];
76-
runTest(String.valueOf(major_version), "-Xint");
77-
runTest(String.valueOf(major_version), "-Xcomp");
78104

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

0 commit comments

Comments
 (0)