--- old/test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java 2019-11-22 09:11:14.922845588 -0800 +++ new/test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java 2019-11-22 09:11:14.654835517 -0800 @@ -662,4 +662,24 @@ } return linkedJar; } + + // Remove all UL log messages from a JVM's STDOUT (such as those printed by -Xlog:cds) + static Pattern logPattern = Pattern.compile("^\\[[0-9. ]*s\\].*"); + public static String filterOutLogs(String stdout) { + StringBuilder sb = new StringBuilder(); + String prefix = ""; + for (String line : stdout.split("\n")) { + if (logPattern.matcher(line).matches()) { + continue; + } + sb.append(prefix); + sb.append(line); + prefix = "\n"; + } + if (stdout.endsWith("\n")) { + // String.split("A\n") returns {"A"}, not {"A", ""}. + sb.append("\n"); + } + return sb.toString(); + } } --- old/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleCompareTest.java 2019-11-22 09:11:15.582870392 -0800 +++ new/test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleCompareTest.java 2019-11-22 09:11:15.314860321 -0800 @@ -49,12 +49,12 @@ output = TestCommon.execOff("-cp", appJar, "PrintSystemModulesApp"); output.shouldHaveExitValue(0); - String bootModules1 = output.getStdout(); + String bootModules1 = TestCommon.filterOutLogs(output.getStdout()); output = TestCommon.exec(appJar, "PrintSystemModulesApp"); TestCommon.checkExec(output); if (output.getStderr().contains("sharing")) { - String bootModules2 = output.getStdout(); + String bootModules2 = TestCommon.filterOutLogs(output.getStdout()); TestCommon.checkOutputStrings(bootModules1, bootModules2, ", "); } @@ -66,14 +66,14 @@ "--show-module-resolution", "-version"); output.shouldHaveExitValue(0); - String moduleResolutionOut1 = output.getStdout(); + String moduleResolutionOut1 = TestCommon.filterOutLogs(output.getStdout()); output = TestCommon.exec(appJar, "--show-module-resolution", "-version"); TestCommon.checkExec(output); if (output.getStderr().contains("sharing")) { - String moduleResolutionOut2 = output.getStdout(); + String moduleResolutionOut2 = TestCommon.filterOutLogs(output.getStdout()); TestCommon.checkOutputStrings( moduleResolutionOut1, moduleResolutionOut2, "\n"); }