7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test LockCompilationTest
26 * @bug 8059624 8152169
27 * @library /testlibrary /test/lib /
28 * @modules java.base/jdk.internal.misc
29 * @modules java.management
30 * @build LockCompilationTest
31 * @run driver ClassFileInstaller sun.hotspot.WhiteBox
32 * sun.hotspot.WhiteBox$WhiteBoxPermission
33 * @run main/othervm -Xbootclasspath/a:. -Xmixed -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:-UseCounterDecay LockCompilationTest
34 * @summary testing of WB::lock/unlockCompilation()
35 */
36
37 import java.io.OutputStream;
38 import java.io.PrintWriter;
39 import java.util.concurrent.BrokenBarrierException;
40 import java.util.concurrent.CyclicBarrier;
41
42 import compiler.whitebox.CompilerWhiteBoxTest;
43 import jdk.test.lib.Asserts;
44
45 public class LockCompilationTest extends CompilerWhiteBoxTest {
46
47 public static void main(String[] args) throws Exception {
48 // This case waits for 5 seconds and verifies that the method hasn't been
49 // compiled during that time. Only do that for one of the test cases.
50
51 // Only compile SimpleTestCaseHelper.method and exclude all other to ensure no
52 // contention on the compile queue causes problems.
53 String directive =
54 "[{ match:\"*SimpleTestCaseHelper.method\", Exclude:false}, " +
55 " { match:\"*.*\", Exclude:true}]";
56 if (WHITE_BOX.addCompilerDirective(directive) != 2) {
57 throw new RuntimeException("Could not add directive");
58 }
59 try {
60 CompilerWhiteBoxTest.main(LockCompilationTest::new, new String[] {"METHOD_TEST"});
61 } finally {
62 WHITE_BOX.removeCompilerDirective(2);
|
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test LockCompilationTest
26 * @bug 8059624 8152169
27 * @summary testing of WB::lock/unlockCompilation()
28 * @library /testlibrary /test/lib /
29 * @modules java.base/jdk.internal.misc
30 * java.management
31 * @build compiler.whitebox.LockCompilationTest
32 * @run driver ClassFileInstaller sun.hotspot.WhiteBox
33 * sun.hotspot.WhiteBox$WhiteBoxPermission
34 * @run main/othervm -Xbootclasspath/a:. -Xmixed -XX:+UnlockDiagnosticVMOptions
35 * -XX:+WhiteBoxAPI -XX:-UseCounterDecay
36 * compiler.whitebox.LockCompilationTest
37 */
38
39 package compiler.whitebox;
40
41 import jdk.test.lib.Asserts;
42
43 public class LockCompilationTest extends CompilerWhiteBoxTest {
44
45 public static void main(String[] args) throws Exception {
46 // This case waits for 5 seconds and verifies that the method hasn't been
47 // compiled during that time. Only do that for one of the test cases.
48
49 // Only compile SimpleTestCaseHelper.method and exclude all other to ensure no
50 // contention on the compile queue causes problems.
51 String directive =
52 "[{ match:\"*SimpleTestCaseHelper.method\", Exclude:false}, " +
53 " { match:\"*.*\", Exclude:true}]";
54 if (WHITE_BOX.addCompilerDirective(directive) != 2) {
55 throw new RuntimeException("Could not add directive");
56 }
57 try {
58 CompilerWhiteBoxTest.main(LockCompilationTest::new, new String[] {"METHOD_TEST"});
59 } finally {
60 WHITE_BOX.removeCompilerDirective(2);
|