8196750: [Testbug] tools/launcher tests need to tolerate unrelated warnings
authoranazarov
Thu, 05 Apr 2018 17:04:16 -0700
changeset 49538 707553fcca04
parent 49537 149dc554808c
child 49539 af97dd04d913
8196750: [Testbug] tools/launcher tests need to tolerate unrelated warnings Reviewed-by: ksrini, dholmes
test/jdk/tools/launcher/InfoStreams.java
test/jdk/tools/launcher/ToolsOpts.java
--- a/test/jdk/tools/launcher/InfoStreams.java	Thu Apr 05 23:46:05 2018 +0200
+++ b/test/jdk/tools/launcher/InfoStreams.java	Thu Apr 05 17:04:16 2018 -0700
@@ -52,27 +52,33 @@
 
         String classPath = System.getProperty("java.class.path");
 
-        run("-help").stderrShouldMatch(USAGE).stdoutShouldNotMatch(".");
-        run("--help").stdoutShouldMatch(USAGE).stderrShouldNotMatch(".");
+        run("-help").stderrShouldMatch(USAGE).stdoutShouldNotMatch(USAGE);
+        run("--help").stdoutShouldMatch(USAGE).stderrShouldNotMatch(USAGE);
 
-        run("-version").stderrShouldMatch(VERSION_ERR).stdoutShouldNotMatch(".");
-        run("--version").stdoutShouldMatch(VERSION_OUT).stderrShouldNotMatch(".");
+        run("-version").stderrShouldMatch(VERSION_ERR)
+                       .stdoutShouldNotMatch(VERSION_ERR)
+                       .stdoutShouldNotMatch(VERSION_OUT);
+        run("--version").stdoutShouldMatch(VERSION_OUT)
+                        .stderrShouldNotMatch(VERSION_OUT)
+                        .stderrShouldNotMatch(VERSION_ERR);
 
         run("-showversion", "--dry-run", "-cp", classPath, "InfoStreams")
             .stderrShouldMatch(VERSION_ERR)
-            .stdoutShouldNotMatch(".");
+            .stdoutShouldNotMatch(VERSION_ERR)
+            .stdoutShouldNotMatch(VERSION_OUT);
         run("--show-version", "--dry-run", "-cp", classPath, "InfoStreams")
             .stdoutShouldMatch(VERSION_OUT)
-            .stderrShouldNotMatch(".");
+            .stderrShouldNotMatch(VERSION_OUT)
+            .stderrShouldNotMatch(VERSION_ERR);
 
         run("-fullversion").stderrShouldMatch(FULLVERSION_ERR)
-            .stdoutShouldNotMatch(".");
+                           .stdoutShouldNotMatch(FULLVERSION_ERR)
+                           .stdoutShouldNotMatch(FULLVERSION_OUT);
         run("--full-version").stdoutShouldMatch(FULLVERSION_OUT)
-            .stderrShouldNotMatch(".");
+                             .stderrShouldNotMatch(FULLVERSION_OUT)
+                             .stderrShouldNotMatch(FULLVERSION_ERR);
 
-        run("-X").stderrShouldMatch(NONSTD).stdoutShouldNotMatch(".");
-        run("--help-extra").stdoutShouldMatch(NONSTD).stderrShouldNotMatch(".");
-
+        run("-X").stderrShouldMatch(NONSTD).stdoutShouldNotMatch(NONSTD);
+        run("--help-extra").stdoutShouldMatch(NONSTD).stderrShouldNotMatch(NONSTD);
     }
-
 }
--- a/test/jdk/tools/launcher/ToolsOpts.java	Thu Apr 05 23:46:05 2018 +0200
+++ b/test/jdk/tools/launcher/ToolsOpts.java	Thu Apr 05 17:04:16 2018 -0700
@@ -184,7 +184,6 @@
                     break;
             }
 
-            String[] output = tr.testOutput.toArray(new String[tr.testOutput.size()]);
             //-Joptions should not be passed to tool
             if (jpos > -1) {
                 checkJoptionOutput(tr, arg);
@@ -194,14 +193,23 @@
                             + "CMD: " + cmdString);
                 }
             } else {
-                //check that each non -J option was passed to tool.
+                // check that each non -J option was passed to tool. It looks for each arg in the output.
+                // Irrelevant lines in the output are skipped. Arguments order is checked as well.
+                int j = 0;
+                List<String> output = tr.testOutput;
                 for (int i = 0; i < arg.length; i++) {
-                    if (output[i].compareTo(arg[i]) != 0) {
+                    boolean found = false;
+                    for (; j < output.size(); j++) {
+                        if (output.get(j).equals(arg[i])) {
+                            pass("check " + output.get(j) + " == " + arg[i]);
+                            found = true;
+                            break;
+                        }
+                    }
+                    if (!found) {
                         throw new RuntimeException(
-                                "failed! CMD: " + cmdString + "\n   case:" +
-                                output[i] + " != " + arg[i]);
-                    } else {
-                        pass("check " + output[i] + " == " + arg[i]);
+                                "failed! Should have passed non -J option [" + arg[i] + "] to tool.\n"
+                                + "CMD: " + cmdString);
                     }
                 }
             }