JAL-1177 refactored command line test harness
authorJim Procter <jprocter@dundee.ac.uk>
Fri, 25 Apr 2014 12:50:47 +0000 (13:50 +0100)
committerJim Procter <jprocter@dundee.ac.uk>
Fri, 25 Apr 2014 12:50:47 +0000 (13:50 +0100)
test/jalview/bin/CommandLineOperations.java

index 7d1d30c..a1c41c7 100644 (file)
@@ -22,6 +22,7 @@ import static org.junit.Assert.*;
 
 import java.io.BufferedReader;
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStreamReader;
 
 import org.junit.AfterClass;
@@ -59,6 +60,33 @@ private static class Worker extends Thread {
     }
   }
 }
+private Worker jalviewDesktopRunner(boolean withAwt, String cmd, int timeout) throws InterruptedException, IOException
+  {
+    String _cmd = "java "+(withAwt ? "-Djava.awt.headless=true":"")+" -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview ";
+    System.out.println("###############Jalview CMD: " + _cmd+cmd);
+    Process ls2_proc = Runtime.getRuntime().exec(_cmd+cmd);
+    BufferedReader outputReader = new BufferedReader(new InputStreamReader(
+            ls2_proc.getInputStream()));
+
+    BufferedReader errorReader = new BufferedReader(new InputStreamReader(
+            ls2_proc.getErrorStream()));
+    Worker worker = new Worker(ls2_proc);
+    worker.start();
+    worker.join(timeout);
+    System.out.println("Output:  ");
+    String ln = null;
+    while ((ln = outputReader.readLine()) != null)
+    {
+      System.out.println(ln);
+    }
+
+    System.out.println("Error:  ");
+    while ((ln = errorReader.readLine()) != null)
+    {
+      System.out.println(ln);
+    }
+    return worker;
+  }
   @Test
   public void testHeadlessModeEPS() throws Exception
   {
@@ -74,36 +102,37 @@ private static class Worker extends Thread {
         _switch=true;
     String jalview_input = "examples/uniref50.fa";
     String jalview_output = "test_uniref50_out.eps";
-    String cmd = "java "+(withAwt ? "-Djava.awt.headless=true":"")+" -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview -"+_harg+" -open "+ jalview_input + " -eps " + jalview_output;
+    String cmd = ""+_harg+" -open "+ jalview_input + " -eps " + jalview_output;
     String harg = _harg+(withAwt ? "-Djava.awt.headless=true":" NO AWT.HEADLESS");
-    System.out.println("Testing with Headless argument: '"+harg+"'\n###############Jalview CMD: " + cmd);
-    Process ls2_proc = Runtime.getRuntime().exec(cmd);
-    BufferedReader outputReader = new BufferedReader(new InputStreamReader(ls2_proc.getInputStream()));
-        
-    BufferedReader errorReader = new BufferedReader(new InputStreamReader(ls2_proc.getErrorStream()));
-    Worker worker = new Worker(ls2_proc);
-    worker.start();
-    worker.join(9000);
-    System.out.println("Output:  ");
-    String ln=null;
-    while ((ln=outputReader.readLine())!=null) {
-      System.out.println(ln);
-    }
-    
-    System.out.println("Error:  " );
-    while ((ln=errorReader.readLine())!=null) {
-      System.out.println(ln);
-    }
+    System.out.println("Testing with Headless argument: '"+harg+"'\n");
+    Worker worker = jalviewDesktopRunner(withAwt, cmd, 9000);
     assertTrue("Didn't create an output EPS file.["+harg+"]", new File("test_uniref50_out.eps").exists());
     assertTrue("Didn't create an EPS file with any content["+harg+"]", new File("test_uniref50_out.eps").length()>4096);
     if (worker.exit == null){
       worker.interrupt();
       Thread.currentThread().interrupt();
-      ls2_proc.destroy();
+      worker.process.destroy();
       fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["+harg+"]");
     }
     } while (!withAwt);
     } 
   }
-
+//  @Test
+//  public void testJalview2XMLDataset() throws Exception
+//  {
+//    String jalview_input = "examples/uniref50.fa";
+//    String jalview_output = "test_uniref50_out.eps";
+//    String cmd = ""+" -open "+ jalview_input + " -eps " + jalview_output;
+//    //String harg = _harg+(withAwt ? "-Djava.awt.headless=true":" NO AWT.HEADLESS");
+//    System.out.println("Testing with Headless argument: '"+harg+"'\n");
+//    Worker worker = jalviewDesktopRunner(withAwt, cmd, 9000);
+//    assertTrue("Didn't create an output EPS file.["+harg+"]", new File("test_uniref50_out.eps").exists());
+//    assertTrue("Didn't create an EPS file with any content["+harg+"]", new File("test_uniref50_out.eps").length()>4096);
+//    if (worker.exit == null){
+//      worker.interrupt();
+//      Thread.currentThread().interrupt();
+//      worker.process.destroy();
+//      fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["+harg+"]");
+//    }
+//  }
 }