Mercurial > hg > graal-compiler
changeset 18385:df47f69cda83
minor clean up of replay compilation test harness
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Sun, 16 Nov 2014 16:24:14 +0100 |
parents | 02e3feaaada1 |
children | 3e5ed05b7e50 |
files | graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java |
diffstat | 1 files changed, 19 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Sun Nov 16 16:15:11 2014 +0100 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Sun Nov 16 16:24:14 2014 +0100 @@ -685,7 +685,7 @@ * Determines if a {@link #checkCompilationResultsEqual mismatching} replay compilation result * results in a diagnostic message or a test error. */ - private static final boolean TEST_REPLAY_MISMATCH_IS_FAILURE = Boolean.getBoolean("graal.testReplay.strict"); + private static final boolean TEST_REPLAY_MISMATCH_IS_FAILURE = Boolean.parseBoolean(System.getProperty("graal.testReplay.strict", "true")); /** * Directory into which tests can dump content useful in debugging test failures. @@ -713,31 +713,25 @@ } } - protected void checkCompilationResultsEqual(Context c, String prefix, CompilationResult expected, CompilationResult actual, ResolvedJavaMethod installedCodeOwner) { + protected void checkCompilationResultsEqual(CompilationResult expected, CompilationResult actual, ResolvedJavaMethod installedCodeOwner) { if (!actual.equals(expected)) { - Mode mode = c.getMode(); - // Temporarily force capturing mode as dumping/printing/disassembling + // Reset to capturing mode as dumping/printing/disassembling // may need to execute proxy methods that have not yet been executed - c.setMode(Mode.Capturing); - try { - String expectedDisFile = dissasembleToFile(expected, installedCodeOwner, "expected"); - String actualDisFile = dissasembleToFile(actual, installedCodeOwner, "actual"); - String message = String.format("%s compilation result differs from expected compilation result", prefix); - if (expectedDisFile != null && actualDisFile != null) { - message += String.format(" [diff %s %s]", expectedDisFile, actualDisFile); - } - if (TEST_REPLAY_MISMATCH_IS_FAILURE) { - Assert.fail(message); - } else { - System.out.println(message); - } - } finally { - c.setMode(mode); + String expectedDisFile = dissasembleToFile(expected, installedCodeOwner, "expected"); + String actualDisFile = dissasembleToFile(actual, installedCodeOwner, "actual"); + String message = "Reply compilation result differs from capturing compilation result"; + if (expectedDisFile != null && actualDisFile != null) { + message += String.format(" [diff %s %s]", expectedDisFile, actualDisFile); + } + if (TEST_REPLAY_MISMATCH_IS_FAILURE) { + Assert.fail(message); + } else { + System.out.println(message); } } } - protected CompilationResult testRecompile(Context c, Mode mode, CompilationResult expectedResult, ResolvedJavaMethod installedCodeOwner) { + protected CompilationResult recompile(Context c, Mode mode, ResolvedJavaMethod installedCodeOwner) { try (Debug.Scope s = Debug.scope(mode.name(), new DebugDumpScope(mode.name(), true))) { StructuredGraph graphToCompile = parseForCompile(installedCodeOwner); @@ -748,11 +742,7 @@ Request<CompilationResult> request = c.get(new GraalCompiler.Request<>(graphToCompile, null, cc, installedCodeOwner, getProviders(), getBackend(), getCodeCache().getTarget(), null, getDefaultGraphBuilderSuite(), OptimisticOptimizations.ALL, getProfilingInfo(graphToCompile), getSpeculationLog(), getSuites(), new CompilationResult(), CompilationResultBuilderFactory.Default)); - CompilationResult result = GraalCompiler.compile(request); - if (expectedResult != null) { - checkCompilationResultsEqual(c, mode.name(), expectedResult, result, installedCodeOwner); - } - return result; + return GraalCompiler.compile(request); } catch (Throwable e) { throw Debug.handle(e); } @@ -762,10 +752,12 @@ try (Context c = new Context()) { // Capturing compilation - CompilationResult expected = testRecompile(c, Mode.Capturing, null, installedCodeOwner); + CompilationResult expected = recompile(c, Mode.Capturing, installedCodeOwner); // Replay compilation - testRecompile(c, Mode.Replaying, expected, installedCodeOwner); + CompilationResult actual = recompile(c, Mode.Replaying, installedCodeOwner); + + checkCompilationResultsEqual(expected, actual, installedCodeOwner); } }