28 * @library /testlibrary /testlibrary/whitebox /compiler/whitebox |
28 * @library /testlibrary /testlibrary/whitebox /compiler/whitebox |
29 * @build NonTieredLevelsTest |
29 * @build NonTieredLevelsTest |
30 * @run main ClassFileInstaller sun.hotspot.WhiteBox |
30 * @run main ClassFileInstaller sun.hotspot.WhiteBox |
31 * @run main/othervm -Xbootclasspath/a:. -XX:-TieredCompilation |
31 * @run main/othervm -Xbootclasspath/a:. -XX:-TieredCompilation |
32 * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI |
32 * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI |
33 * -XX:CompileCommand=compileonly,TestCase$Helper::* |
33 * -XX:CompileCommand=compileonly,SimpleTestCase$Helper::* |
34 * NonTieredLevelsTest |
34 * NonTieredLevelsTest |
35 * @summary Verify that only one level can be used |
35 * @summary Verify that only one level can be used |
36 * @author igor.ignatyev@oracle.com |
36 * @author igor.ignatyev@oracle.com |
37 */ |
37 */ |
38 public class NonTieredLevelsTest extends CompLevelsTest { |
38 public class NonTieredLevelsTest extends CompLevelsTest { |
57 if (TIERED_COMPILATION) { |
57 if (TIERED_COMPILATION) { |
58 System.err.println("Test isn't applicable w/ enabled " |
58 System.err.println("Test isn't applicable w/ enabled " |
59 + "TieredCompilation. Skip test."); |
59 + "TieredCompilation. Skip test."); |
60 return; |
60 return; |
61 } |
61 } |
62 for (TestCase test : TestCase.values()) { |
62 CompilerWhiteBoxTest.main(NonTieredLevelsTest::new, args); |
63 new NonTieredLevelsTest(test).runTest(); |
|
64 } |
|
65 } |
63 } |
66 |
64 |
67 private NonTieredLevelsTest(TestCase testCase) { |
65 private NonTieredLevelsTest(TestCase testCase) { |
68 super(testCase); |
66 super(testCase); |
69 // to prevent inlining of #method |
67 // to prevent inlining of #method |
78 |
76 |
79 int compLevel = getCompLevel(); |
77 int compLevel = getCompLevel(); |
80 checkLevel(AVAILABLE_COMP_LEVEL, compLevel); |
78 checkLevel(AVAILABLE_COMP_LEVEL, compLevel); |
81 int bci = WHITE_BOX.getMethodEntryBci(method); |
79 int bci = WHITE_BOX.getMethodEntryBci(method); |
82 deoptimize(); |
80 deoptimize(); |
83 if (!testCase.isOsr) { |
81 if (!testCase.isOsr()) { |
84 for (int level = 1; level <= COMP_LEVEL_MAX; ++level) { |
82 for (int level = 1; level <= COMP_LEVEL_MAX; ++level) { |
85 if (IS_AVAILABLE_COMPLEVEL.test(level)) { |
83 if (IS_AVAILABLE_COMPLEVEL.test(level)) { |
86 testAvailableLevel(level, bci); |
84 testAvailableLevel(level, bci); |
87 } else { |
85 } else { |
88 testUnavailableLevel(level, bci); |
86 testUnavailableLevel(level, bci); |