提交 a3f60e43 编写于 作者: T thartmann

8061983: [TESTBUG] compiler/whitebox/MakeMethodNotCompilableTest.java fails...

8061983: [TESTBUG] compiler/whitebox/MakeMethodNotCompilableTest.java fails with "must not be in queue"
Summary: Added a method checkNotCompiled(boolean isOsr) to either check if the method is OSR compiled or to check if it is non-OSR compiled.
Reviewed-by: kvn
上级 6e8572c5
...@@ -206,7 +206,6 @@ public abstract class CompilerWhiteBoxTest { ...@@ -206,7 +206,6 @@ public abstract class CompilerWhiteBoxTest {
* is compiled, or if {@linkplain #method} has zero * is compiled, or if {@linkplain #method} has zero
* compilation level. * compilation level.
*/ */
protected final void checkNotCompiled(int compLevel) { protected final void checkNotCompiled(int compLevel) {
if (WHITE_BOX.isMethodQueuedForCompilation(method)) { if (WHITE_BOX.isMethodQueuedForCompilation(method)) {
throw new RuntimeException(method + " must not be in queue"); throw new RuntimeException(method + " must not be in queue");
...@@ -227,24 +226,30 @@ public abstract class CompilerWhiteBoxTest { ...@@ -227,24 +226,30 @@ public abstract class CompilerWhiteBoxTest {
* compilation level. * compilation level.
*/ */
protected final void checkNotCompiled() { protected final void checkNotCompiled() {
if (WHITE_BOX.isMethodCompiled(method, false)) { checkNotCompiled(true);
throw new RuntimeException(method + " must be not compiled"); checkNotCompiled(false);
}
if (WHITE_BOX.getMethodCompilationLevel(method, false) != 0) {
throw new RuntimeException(method + " comp_level must be == 0");
}
checkNotOsrCompiled();
} }
protected final void checkNotOsrCompiled() { /**
* Checks, that {@linkplain #method} is not (OSR-)compiled.
*
* @param isOsr Check for OSR compilation if true
* @throws RuntimeException if {@linkplain #method} is in compiler queue or
* is compiled, or if {@linkplain #method} has zero
* compilation level.
*/
protected final void checkNotCompiled(boolean isOsr) {
waitBackgroundCompilation();
if (WHITE_BOX.isMethodQueuedForCompilation(method)) { if (WHITE_BOX.isMethodQueuedForCompilation(method)) {
throw new RuntimeException(method + " must not be in queue"); throw new RuntimeException(method + " must not be in queue");
} }
if (WHITE_BOX.isMethodCompiled(method, true)) { if (WHITE_BOX.isMethodCompiled(method, isOsr)) {
throw new RuntimeException(method + " must be not osr_compiled"); throw new RuntimeException(method + " must not be " +
(isOsr ? "osr_" : "") + "compiled");
} }
if (WHITE_BOX.getMethodCompilationLevel(method, true) != 0) { if (WHITE_BOX.getMethodCompilationLevel(method, isOsr) != 0) {
throw new RuntimeException(method + " osr_comp_level must be == 0"); throw new RuntimeException(method + (isOsr ? " osr_" : " ") +
"comp_level must be == 0");
} }
} }
......
...@@ -131,14 +131,15 @@ public class MakeMethodNotCompilableTest extends CompilerWhiteBoxTest { ...@@ -131,14 +131,15 @@ public class MakeMethodNotCompilableTest extends CompilerWhiteBoxTest {
throw new RuntimeException(method throw new RuntimeException(method
+ " is not compilable after clearMethodState()"); + " is not compilable after clearMethodState()");
} }
// Make method not (OSR-)compilable (depending on testCase.isOsr())
makeNotCompilable(); makeNotCompilable();
if (isCompilable()) { if (isCompilable()) {
throw new RuntimeException(method + " must be not compilable"); throw new RuntimeException(method + " must be not compilable");
} }
// Try to (OSR-)compile method
compile(); compile();
checkNotOsrCompiled(); // Method should not be (OSR-)compiled
checkNotCompiled(testCase.isOsr());
if (isCompilable()) { if (isCompilable()) {
throw new RuntimeException(method + " must be not compilable"); throw new RuntimeException(method + " must be not compilable");
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册