diff --git a/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ConsoleReportPrinter.java b/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ConsoleReportPrinter.java index 66bfed7d..563d93b4 100644 --- a/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ConsoleReportPrinter.java +++ b/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ConsoleReportPrinter.java @@ -149,7 +149,7 @@ private void printResult(TestResult r) { if (!progressInteractive) { output.println(); } - ReportUtils.printResult(output, r, true); + ReportUtils.printResult(output, r, false); } if (shouldPrintStatusLine) { diff --git a/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ReportUtils.java b/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ReportUtils.java index e62e67c3..97af58ca 100644 --- a/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ReportUtils.java +++ b/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/ReportUtils.java @@ -110,20 +110,22 @@ private static TestResult merged(TestConfig config, Collection<TestResult> merge return root; } - public static void printResult(PrintWriter pw, TestResult r, boolean inProgress) { + public static void printResult(PrintWriter pw, TestResult r, boolean finalResults) { TestConfig config = r.getConfig(); String label = StringUtils.leftPadDash("[" + ReportUtils.statusToLabel(r) + "]", 15); String testName = StringUtils.chunkName(r.getName()); pw.printf("%15s %s%n", label, testName); pw.println(); - pw.format(" Scheduling class:%n"); - pw.println(SchedulingClass.description(config.getSchedulingClass(), config.actorNames)); - pw.format(" CPU allocation:%n"); - pw.println(CPUMap.description(config.cpuMap, config.actorNames)); - pw.format(" Compilation: %s%n", CompileMode.description(config.getCompileMode(), config.actorNames)); - pw.format(" JVM args: %s%n", config.jvmArgs); - if (inProgress) { + if (finalResults) { + pw.println(" Results across all configurations:"); + } else { + pw.format(" Scheduling class:%n"); + pw.println(SchedulingClass.description(config.getSchedulingClass(), config.actorNames)); + pw.format(" CPU allocation:%n"); + pw.println(CPUMap.description(config.cpuMap, config.actorNames)); + pw.format(" Compilation: %s%n", CompileMode.description(config.getCompileMode(), config.actorNames)); + pw.format(" JVM args: %s%n", config.jvmArgs); pw.format(" Fork: #%d%n", config.forkId + 1); } pw.println(); diff --git a/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/TextReportPrinter.java b/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/TextReportPrinter.java index 21399ad8..ebb76220 100644 --- a/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/TextReportPrinter.java +++ b/jcstress-core/src/main/java/org/openjdk/jcstress/infra/grading/TextReportPrinter.java @@ -58,32 +58,30 @@ public TextReportPrinter(Options opts, InProcessCollector collector) { public void work() { emittedTests.clear(); - List<TestResult> byConfig = ReportUtils.mergedByConfig(collector.getTestResults()); - Collections.sort(byConfig, Comparator - .comparing(TestResult::getName) - .thenComparing(t -> t.getConfig().jvmArgs.toString())); + List<TestResult> byName = ReportUtils.mergedByName(collector.getTestResults()); + Collections.sort(byName, Comparator.comparing(TestResult::getName)); pw.println("RUN RESULTS:"); - printXTests(byConfig, + printXTests(byName, "Interesting tests", r -> r.status() == Status.NORMAL && r.grading().hasInteresting, - verbosity.printAllTests() + true ); - printXTests(byConfig, + printXTests(byName, "Failed tests", r -> r.status() == Status.NORMAL && !r.grading().isPassed, - verbosity.printAllTests() + true ); - printXTests(byConfig, + printXTests(byName, "Error tests", r -> r.status() != Status.NORMAL && r.status() != Status.API_MISMATCH, - verbosity.printAllTests() + true ); - printXTests(byConfig, + printXTests(byName, "All remaining tests", r -> !emittedTests.contains(r), verbosity.printAllTests()); @@ -116,7 +114,7 @@ private void printXTests(List<TestResult> list, public void emitTest(TestResult result) { emittedTests.add(result); - ReportUtils.printResult(pw, result, false); + ReportUtils.printResult(pw, result, true); } }