From b5a8396e97beeee2af3f69ebfa16a117677a46f0 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Fri, 25 Apr 2014 13:50:47 +0100 Subject: [PATCH] JAL-1177 refactored command line test harness --- test/jalview/bin/CommandLineOperations.java | 71 +++++++++++++++++++-------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/test/jalview/bin/CommandLineOperations.java b/test/jalview/bin/CommandLineOperations.java index 7d1d30c..a1c41c7 100644 --- a/test/jalview/bin/CommandLineOperations.java +++ b/test/jalview/bin/CommandLineOperations.java @@ -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+"]"); +// } +// } } -- 1.7.10.2