JAL-4290 new CommandsTest.headlessOrGuiImageOutputTest - uses CommandLineOperations...
[jalview.git] / test / jalview / bin / CommandLineOperations.java
index 0486744..3855dc7 100644 (file)
@@ -71,7 +71,7 @@ public class CommandLineOperations
    * @author jimp
    * 
    */
-  private static class Worker extends Thread
+  public static class Worker extends Thread
   {
     private final Process process;
 
@@ -156,7 +156,7 @@ public class CommandLineOperations
     return classpath;
   }
 
-  private Worker getJalviewDesktopRunner(boolean withAwt, String cmd,
+  public static Worker getJalviewDesktopRunner(boolean withAwt, String cmd,
           int timeout)
   {
     // Note: JAL-3065 - don't include quotes for lib/* because the arguments are
@@ -183,7 +183,7 @@ public class CommandLineOperations
               new InputStreamReader(ls2_proc.getInputStream()));
       BufferedReader errorReader = new BufferedReader(
               new InputStreamReader(ls2_proc.getErrorStream()));
-      worker = new Worker(ls2_proc);
+      worker = new CommandLineOperations.Worker(ls2_proc);
       worker.start();
       try
       {
@@ -229,12 +229,13 @@ public class CommandLineOperations
     String ln = null;
     while ((ln = worker.getOutputReader().readLine()) != null)
     {
-      System.out.println(ln);
+      System.out.println("STDOUT: " + ln);
       successfulCMDs.add(ln);
     }
     while ((ln = worker.getErrorReader().readLine()) != null)
     {
-      System.err.println(ln);
+      System.err.println("STDERR: " + ln);
+      successfulCMDs.add(ln);
     }
   }
 
@@ -247,6 +248,7 @@ public class CommandLineOperations
 
     // number of lines expected on STDERR when Jalview starts up normally
     // may need to adjust this if Jalview is excessively noisy ?
+    final int STDOUT_SETUPLINES = 50;
     final int STDERR_SETUPLINES = 50;
 
     // thread monitors stderr - bails after SETUP_TIMEOUT or when
@@ -257,14 +259,24 @@ public class CommandLineOperations
       public void run()
       {
         String ln = null;
-        int count = 0;
+        int stdoutcount = 0;
+        int stderrcount = 0;
         try
         {
           while ((ln = worker.getOutputReader().readLine()) != null)
           {
             System.out.println(ln);
             successfulCMDs.add(ln);
-            if (++count > STDERR_SETUPLINES)
+            if (++stdoutcount > STDOUT_SETUPLINES)
+            {
+              break;
+            }
+          }
+          while ((ln = worker.getErrorReader().readLine()) != null)
+          {
+            System.err.println(ln);
+            successfulCMDs.add(ln);
+            if (++stderrcount > STDERR_SETUPLINES)
             {
               break;
             }