+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Copyright (C) 2014 The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.bin;
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;
}
}
}
- @Test
- public void testHeadlessModeEPS() throws Exception
+private Worker jalviewDesktopRunner(boolean withAwt, String cmd, int timeout) throws InterruptedException, IOException
{
- String jalview_input = "examples/uniref50.fa";
- String jalview_output = "test_uniref50_out.eps";
- String cmd = "java -Djava.awt.headless=true -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview -nodisplay -open "+ jalview_input + " -eps " + jalview_output;
+ 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()));
- System.out.println("###############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()));
+ BufferedReader errorReader = new BufferedReader(new InputStreamReader(
+ ls2_proc.getErrorStream()));
Worker worker = new Worker(ls2_proc);
worker.start();
- worker.join(9000);
+ worker.join(timeout);
System.out.println("Output: ");
- String ln=null;
- while ((ln=outputReader.readLine())!=null) {
+ String ln = null;
+ while ((ln = outputReader.readLine()) != null)
+ {
System.out.println(ln);
}
-
- System.out.println("Error: " );
- while ((ln=errorReader.readLine())!=null) {
+
+ System.out.println("Error: ");
+ while ((ln = errorReader.readLine()) != null)
+ {
System.out.println(ln);
}
- assertTrue("Didn't create an output EPS file.", new File("test_uniref50_out.eps").exists());
- assertTrue("Didn't create an EPS file with any content", new File("test_uniref50_out.eps").length()>4096);
+ return worker;
+ }
+ @Test
+ public void testHeadlessModeEPS() throws Exception
+ {
+ String[] headlessArgs=new String[] { "nodisplay","headless","nogui"};
+ for (String _harg:headlessArgs)
+ {
+ boolean _switch=false,withAwt=false;
+ do {
+ if (_switch)
+ {
+ withAwt=true;
+ }
+ _switch=true;
+ String jalview_input = "examples/uniref50.fa";
+ String jalview_output = "test_uniref50_out.eps";
+ 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");
+ 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();
- fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms).");
-}
+ 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+"]");
+// }
+// }
}