/* Copyright (c) 2009 Peter Troshin\r
+ * Copyright (c) 2013 Alexander Sherstnev\r
* \r
- * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0 \r
+ * Java Bioinformatics Analysis Web Services (JABAWS)\r
+ * @version: 2.5 \r
* \r
* This library is free software; you can redistribute it and/or modify it under the terms of the\r
* Apache License version 2 as published by the Apache Software Foundation\r
import java.io.FileInputStream;\r
import java.io.FileNotFoundException;\r
import java.io.IOException;\r
+import java.util.Arrays;\r
\r
import javax.xml.bind.ValidationException;\r
\r
import compbio.engine.client.Executable;\r
import compbio.engine.client.RunConfiguration;\r
import compbio.engine.cluster.drmaa.JobRunner;\r
+import compbio.engine.local.LocalRunner;\r
import compbio.metadata.AllTestSuit;\r
import compbio.metadata.ChunkHolder;\r
import compbio.metadata.JobExecutionException;\r
import compbio.metadata.ResultNotAvailableException;\r
import compbio.metadata.RunnerConfig;\r
import compbio.runner.msa.Tcoffee;\r
+import compbio.runner.predictors.Jpred;\r
import compbio.util.FileWatcher;\r
+import compbio.util.SysPrefs;\r
\r
public class TcoffeeTester {\r
\r
private Tcoffee tcoffee;\r
+ public static final String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory() + File.separator;\r
+ public static String test_output = "tcoffee.out";\r
+ public static String test_input = CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata" + File.separator + "TO1381.fasta";\r
\r
- @BeforeMethod(groups = { AllTestSuit.test_group_cluster,\r
- AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
+ @BeforeMethod(groups = {AllTestSuit.test_group_cluster, AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows})\r
public void init() {\r
tcoffee = new Tcoffee();\r
- tcoffee.setInput(AllTestSuit.test_input).setOutput("tcoffee.out")\r
- .setError("tcoffee.progress");\r
+ tcoffee.setInput(test_input);\r
+ tcoffee.setOutput(test_output);\r
+ tcoffee.setError("tcoffee.progress");\r
+ //System.out.println("Tcoffee has been configured!");\r
}\r
\r
- @Test(groups = { AllTestSuit.test_group_runner,\r
- AllTestSuit.test_group_non_windows })\r
- public void testExecute() {\r
+ @Test(groups = { AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
+ public void RunLocally() {\r
try {\r
- ConfiguredExecutable<Tcoffee> ctcoffee = Configurator\r
- .configureExecutable(tcoffee, Executable.ExecProvider.Local);\r
+ ConfiguredExecutable<Tcoffee> ctcoffee = Configurator.configureExecutable(tcoffee, Executable.ExecProvider.Local);\r
// matrix does not appear to work\r
// ctcoffee.getParameters().setParam("-matrix","BLOSUM62");\r
+\r
SyncExecutor sexecutor = Configurator.getSyncEngine(ctcoffee);\r
sexecutor.executeJob();\r
ConfiguredExecutable<?> al = sexecutor.waitForResult();\r
Alignment align = al.getResults();\r
assertNotNull(align);\r
\r
- // System.out.println("Tcoffee stat file: " + tcoffee.getError());\r
+// LocalRunner sexecutor = new LocalRunner(ctcoffee);\r
+// sexecutor.executeJob();\r
+// ConfiguredExecutable<?> al = sexecutor.waitForResult();\r
+// Alignment align = al.getResults();\r
+// assertNotNull(align);\r
+\r
} catch (JobSubmissionException e) {\r
e.printStackTrace();\r
fail(e.getMessage());\r
}\r
}\r
\r
- @Test(groups = { AllTestSuit.test_group_runner,\r
- AllTestSuit.test_group_non_windows })\r
+ @Test(groups = {AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows})\r
public void readStatistics() {\r
try {\r
Tcoffee tcoffee = new Tcoffee().setInput(AllTestSuit.test_input);\r
- ConfiguredExecutable<Tcoffee> confTcoffee = Configurator\r
- .configureExecutable(tcoffee, Executable.ExecProvider.Local);\r
+ ConfiguredExecutable<Tcoffee> confTcoffee = Configurator.configureExecutable(tcoffee, Executable.ExecProvider.Local);\r
\r
AsyncExecutor sexec = Configurator.getAsyncEngine(confTcoffee);\r
String jobId = sexec.submitJob(confTcoffee);\r
- FilePuller fw = FilePuller.newFilePuller(confTcoffee\r
- .getWorkDirectory()\r
- + File.separator + tcoffee.getError(),\r
- FileWatcher.MIN_CHUNK_SIZE_BYTES);\r
+ String file = confTcoffee.getWorkDirectory() + File.separator + tcoffee.getError();\r
+ FilePuller fw = FilePuller.newFilePuller(file, FileWatcher.MIN_CHUNK_SIZE_BYTES);\r
int count = 0;\r
long position = 0;\r
fw.waitForFile(4);\r
- while (!(sexec.getJobStatus(jobId) == JobStatus.FINISHED || sexec\r
- .getJobStatus(jobId) == JobStatus.FAILED || sexec\r
- .getJobStatus(jobId) == JobStatus.UNDEFINED)\r
- || fw.hasMoreData()) {\r
- ChunkHolder ch = fw.pull(position);\r
- String chunk = ch.getChunk();\r
- position = ch.getNextPosition();\r
- System.out.print(chunk);\r
+ while (!(sexec.getJobStatus(jobId) == JobStatus.FINISHED || \r
+ sexec.getJobStatus(jobId) == JobStatus.FAILED || \r
+ sexec.getJobStatus(jobId) == JobStatus.UNDEFINED) || fw.hasMoreData()) {\r
+ if (fw.hasMoreData()) {\r
+ ChunkHolder ch = fw.pull(position);\r
+ String chunk = ch.getChunk();\r
+ position = ch.getNextPosition();\r
+ System.out.print(chunk);\r
+ }\r
count++;\r
}\r
assertTrue(count > 1);\r
}\r
}\r
\r
- @Test(groups = { AllTestSuit.test_group_cluster,\r
- AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
- public void testClusterExecute() {\r
- try {\r
- ConfiguredExecutable<Tcoffee> cmafft = Configurator\r
- .configureExecutable(tcoffee,\r
- Executable.ExecProvider.Cluster);\r
- JobRunner sexecutor = (JobRunner) Configurator.getSyncEngine(\r
- cmafft, Executable.ExecProvider.Cluster);\r
- sexecutor.executeJob();\r
- ConfiguredExecutable<?> al = sexecutor.waitForResult();\r
- Alignment align = al.getResults();\r
- assertNotNull(align);\r
- } catch (JobSubmissionException e) {\r
- e.printStackTrace();\r
- fail(e.getMessage());\r
- } catch (JobExecutionException e) {\r
- e.printStackTrace();\r
- fail(e.getMessage());\r
- } catch (ResultNotAvailableException e) {\r
- e.printStackTrace();\r
- fail(e.getMessage());\r
- }\r
- }\r
-\r
- @Test(groups = { AllTestSuit.test_group_runner,\r
- AllTestSuit.test_group_non_windows })\r
- public void testNcore() {\r
+ @Test(groups = { AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
+ public void SetNcore() {\r
Tcoffee tc = new Tcoffee();\r
- // System.out.println("TCPRM:" + tc.getParameters(null));\r
assertEquals(tc.getParameters(null).size(), 3);\r
tc.setNCore(2);\r
assertEquals(2, tc.getNCore());\r
assertEquals(tc.getParameters(null).size(), 3);\r
}\r
\r
- @Test(groups = { AllTestSuit.test_group_cluster,\r
- AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
- public void testPersistance() {\r
+ @Test(groups = { AllTestSuit.test_group_cluster, AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
+ public void Persistance() {\r
try {\r
Tcoffee tcoffee = new Tcoffee();\r
- tcoffee.setError("errrr.txt").setInput(AllTestSuit.test_input)\r
- .setOutput("outtt.txt");\r
+ tcoffee.setError("errrr.txt");\r
+ tcoffee.setInput(AllTestSuit.test_input);\r
+ tcoffee.setOutput("outtt.txt");\r
assertEquals(tcoffee.getInput(), AllTestSuit.test_input);\r
assertEquals(tcoffee.getError(), "errrr.txt");\r
assertEquals(tcoffee.getOutput(), "outtt.txt");\r
- ConfiguredExecutable<Tcoffee> ctcofee = Configurator\r
- .configureExecutable(tcoffee, Executable.ExecProvider.Local);\r
\r
+ ConfiguredExecutable<Tcoffee> ctcofee = Configurator.configureExecutable(tcoffee, Executable.ExecProvider.Local);\r
SyncExecutor sexec = Configurator.getSyncEngine(ctcofee);\r
sexec.executeJob();\r
ConfiguredExecutable<?> al = sexec.waitForResult();\r
assertTrue(ctcofee.saveRunConfiguration());\r
\r
// See if loaded configuration is the same as saved\r
- RunConfiguration loadedRun = RunConfiguration\r
- .load(new FileInputStream(new File(ctcofee\r
- .getWorkDirectory(), RunConfiguration.rconfigFile)));\r
- assertEquals(((ConfExecutable<Tcoffee>) ctcofee)\r
- .getRunConfiguration(), loadedRun);\r
+ RunConfiguration loadedRun = RunConfiguration.load(new FileInputStream(new File(ctcofee.getWorkDirectory(), RunConfiguration.rconfigFile)));\r
+ assertEquals(((ConfExecutable<Tcoffee>) ctcofee).getRunConfiguration(), loadedRun);\r
+\r
// Load run configuration as ConfExecutable\r
ConfiguredExecutable<Tcoffee> resurrectedCTcoffee = (ConfiguredExecutable<Tcoffee>) ctcofee\r
- .loadRunConfiguration(new FileInputStream(new File(ctcofee\r
- .getWorkDirectory(), RunConfiguration.rconfigFile)));\r
+ .loadRunConfiguration(new FileInputStream(new File(ctcofee.getWorkDirectory(), RunConfiguration.rconfigFile)));\r
assertNotNull(resurrectedCTcoffee);\r
+\r
// See in details whether executables are the same\r
assertEquals(resurrectedCTcoffee.getExecutable(), tcoffee);\r
\r
// Finally rerun the job in the new task directory\r
- ConfiguredExecutable<Tcoffee> restcoffee = Configurator\r
- .configureExecutable(resurrectedCTcoffee.getExecutable(),\r
- Executable.ExecProvider.Local);\r
+ ConfiguredExecutable<Tcoffee> restcoffee = Configurator.configureExecutable(resurrectedCTcoffee.getExecutable(), Executable.ExecProvider.Local);\r
\r
- sexec = Configurator.getSyncEngine(restcoffee,\r
- Executable.ExecProvider.Local);\r
+ sexec = Configurator.getSyncEngine(restcoffee,Executable.ExecProvider.Local);\r
sexec.executeJob();\r
al = sexec.waitForResult();\r
assertNotNull(al);\r
}\r
\r
@Test(groups = { AllTestSuit.test_group_runner })\r
- public void testConfigurationLoading() {\r
+ public void ConfigurationLoading() {\r
try {\r
- RunnerConfig<Tcoffee> tcoffeeConfig = ConfExecutable\r
- .getRunnerOptions(Tcoffee.class);\r
+ RunnerConfig<Tcoffee> tcoffeeConfig = ConfExecutable.getRunnerOptions(Tcoffee.class);\r
assertNotNull(tcoffeeConfig);\r
assertTrue(tcoffeeConfig.getArguments().size() > 0);\r
\r
- PresetManager<Tcoffee> tcoffeePresets = ConfExecutable\r
- .getRunnerPresets(Tcoffee.class);\r
+ PresetManager<Tcoffee> tcoffeePresets = ConfExecutable.getRunnerPresets(Tcoffee.class);\r
assertNotNull(tcoffeePresets);\r
assertTrue(tcoffeePresets.getPresets().size() > 0);\r
tcoffeePresets.validate(tcoffeeConfig);\r
\r
- LimitsManager<Tcoffee> tcoffeeLimits = ConfExecutable\r
- .getRunnerLimits(Tcoffee.class);\r
+ LimitsManager<Tcoffee> tcoffeeLimits = ConfExecutable.getRunnerLimits(Tcoffee.class);\r
assertNotNull(tcoffeeLimits);\r
assertTrue(tcoffeeLimits.getLimits().size() > 0);\r
tcoffeeLimits.validate(tcoffeePresets);\r
e.printStackTrace();\r
fail(e.getLocalizedMessage());\r
}\r
+ }\r
\r
+ // disabled\r
+ @Test(enabled=false,groups = { AllTestSuit.test_group_cluster, AllTestSuit.test_group_runner, AllTestSuit.test_group_non_windows })\r
+ public void RunOnCluster() {\r
+ try {\r
+ ConfiguredExecutable<Tcoffee> cmafft = Configurator.configureExecutable(tcoffee, Executable.ExecProvider.Cluster);\r
+ JobRunner sexecutor = (JobRunner) Configurator.getSyncEngine(cmafft, Executable.ExecProvider.Cluster);\r
+ sexecutor.executeJob();\r
+ ConfiguredExecutable<?> al = sexecutor.waitForResult();\r
+ Alignment align = al.getResults();\r
+ assertNotNull(align);\r
+ } catch (JobSubmissionException e) {\r
+ e.printStackTrace();\r
+ fail(e.getMessage());\r
+ } catch (JobExecutionException e) {\r
+ e.printStackTrace();\r
+ fail(e.getMessage());\r
+ } catch (ResultNotAvailableException e) {\r
+ e.printStackTrace();\r
+ fail(e.getMessage());\r
+ }\r
}\r
}\r