X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=testsrc%2Fcompbio%2Frunner%2Fdisorder%2FDisemblTester.java;h=d77648e6070049e6ab38b21884e64a74e19c97f6;hb=8033a51860de2200a54e64add0809d6780f5b092;hp=85d5e91f48011212aab61d0dea8c90f66ff40c79;hpb=fab6bab770b548a0c99ed6f5dfb46f5aa99f67c7;p=jabaws.git diff --git a/testsrc/compbio/runner/disorder/DisemblTester.java b/testsrc/compbio/runner/disorder/DisemblTester.java index 85d5e91..d77648e 100644 --- a/testsrc/compbio/runner/disorder/DisemblTester.java +++ b/testsrc/compbio/runner/disorder/DisemblTester.java @@ -30,7 +30,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.ParseException; -import java.util.List; +import java.util.HashSet; import javax.xml.bind.ValidationException; @@ -39,7 +39,7 @@ import org.ggf.drmaa.JobInfo; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import compbio.data.sequence.AnnotatedSequence; +import compbio.data.sequence.Score; import compbio.engine.AsyncExecutor; import compbio.engine.Configurator; import compbio.engine.FilePuller; @@ -66,287 +66,289 @@ import compbio.util.SysPrefs; public class DisemblTester { - public static String test_outfile = "TO1381.disembl.out"; + public static String test_outfile = "TO1381.disembl.out"; - private Disembl disembl; + private Disembl disembl; - @BeforeMethod(alwaysRun = true) - void init() { - disembl = new Disembl(); - disembl.setInput(AllTestSuit.test_input).setOutput(test_outfile); - } + @BeforeMethod(alwaysRun = true) + void init() { + disembl = new Disembl(); + disembl.setInput(AllTestSuit.test_input).setOutput(test_outfile); + } - @Test(groups = { AllTestSuit.test_group_cluster, - AllTestSuit.test_group_runner }) - public void testRunOnCluster() { - assertFalse(SysPrefs.isWindows, - "Cluster execution can only be in unix environment"); - try { - ConfiguredExecutable confDisembl = Configurator - .configureExecutable(disembl, - Executable.ExecProvider.Cluster); - JobRunner runner = JobRunner.getInstance(confDisembl); + @Test(groups = {AllTestSuit.test_group_cluster, + AllTestSuit.test_group_runner}) + public void testRunOnCluster() { + assertFalse(SysPrefs.isWindows, + "Cluster execution can only be in unix environment"); + try { + ConfiguredExecutable confDisembl = Configurator + .configureExecutable(disembl, + Executable.ExecProvider.Cluster); + JobRunner runner = JobRunner.getInstance(confDisembl); - assertNotNull(runner, "Runner is NULL"); - runner.executeJob(); - // assertNotNull("JobId is null", jobId1); - JobStatus status = runner.getJobStatus(); - assertTrue(status == JobStatus.PENDING - || status == JobStatus.RUNNING, - "Status of the process is wrong!"); - JobInfo info = runner.getJobInfo(); - assertNotNull(info, "JobInfo is null"); - StatisticManager sm = new StatisticManager(info); - assertNotNull(sm, "Statictic manager is null"); - try { + assertNotNull(runner, "Runner is NULL"); + runner.executeJob(); + // assertNotNull("JobId is null", jobId1); + JobStatus status = runner.getJobStatus(); + assertTrue(status == JobStatus.PENDING + || status == JobStatus.RUNNING, + "Status of the process is wrong!"); + JobInfo info = runner.getJobInfo(); + assertNotNull(info, "JobInfo is null"); + StatisticManager sm = new StatisticManager(info); + assertNotNull(sm, "Statictic manager is null"); + try { - String exits = sm.getExitStatus(); - assertNotNull("Exit status is null", exits); - // cut 4 trailing zeros from the number - int exitsInt = ClusterUtil.CLUSTER_STAT_IN_SEC.parse(exits) - .intValue(); - assertEquals(0, exitsInt); - System.out.println(sm.getAllStats()); + String exits = sm.getExitStatus(); + assertNotNull("Exit status is null", exits); + // cut 4 trailing zeros from the number + int exitsInt = ClusterUtil.CLUSTER_STAT_IN_SEC.parse(exits) + .intValue(); + assertEquals(0, exitsInt); + System.out.println(sm.getAllStats()); - } catch (ParseException e) { - e.printStackTrace(); - fail("Parse Exception: " + e.getMessage()); - } - //assertFalse(runner.cleanup()); - assertTrue(sm.hasExited()); - assertFalse(sm.wasAborted()); - assertFalse(sm.hasDump()); - assertFalse(sm.hasSignaled()); + } catch (ParseException e) { + e.printStackTrace(); + fail("Parse Exception: " + e.getMessage()); + } + // assertFalse(runner.cleanup()); + assertTrue(sm.hasExited()); + assertFalse(sm.wasAborted()); + assertFalse(sm.hasDump()); + assertFalse(sm.hasSignaled()); - } catch (JobSubmissionException e) { - e.printStackTrace(); - fail("DrmaaException caught:" + e.getMessage()); - } catch (JobExecutionException e) { - e.printStackTrace(); - fail("DrmaaException caught:" + e.getMessage()); - } catch (DrmaaException e) { - e.printStackTrace(); - fail("DrmaaException caught:" + e.getMessage()); + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (DrmaaException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } } - } - /** - * This tests fails from time to time depending on the cluster load or some - * other factors. Any client code has to adjust for this issue - */ - @Test(groups = { AllTestSuit.test_group_cluster, - AllTestSuit.test_group_runner }) - public void testRunOnClusterAsync() { - assertFalse(SysPrefs.isWindows, - "Cluster execution can only be in unix environment"); - try { - ConfiguredExecutable confDisembl = Configurator - .configureExecutable(disembl, - Executable.ExecProvider.Cluster); - AsyncExecutor aengine = Configurator.getAsyncEngine(confDisembl); - String jobId = aengine.submitJob(confDisembl); - assertNotNull(jobId, "Runner is NULL"); - // let drmaa to start - Thread.sleep(500); - JobStatus status = aengine.getJobStatus(jobId); - while (status != JobStatus.FINISHED) { - System.out.println("Job Status: " + status); - Thread.sleep(1000); - status = aengine.getJobStatus(jobId); - ConfiguredExecutable result = (ConfiguredExecutable) aengine - .getResults(jobId); - assertNotNull(result); - System.out.println("RES:" + result); - // Some times the job could be removed from the cluster accounting - // before it has been reported to finish. Make sure - // to stop waiting in such case - if (status == JobStatus.UNDEFINED) { - break; + /** + * This tests fails from time to time depending on the cluster load or some + * other factors. Any client code has to adjust for this issue + */ + @Test(groups = {AllTestSuit.test_group_cluster, + AllTestSuit.test_group_runner}) + public void testRunOnClusterAsync() { + assertFalse(SysPrefs.isWindows, + "Cluster execution can only be in unix environment"); + try { + ConfiguredExecutable confDisembl = Configurator + .configureExecutable(disembl, + Executable.ExecProvider.Cluster); + AsyncExecutor aengine = Configurator.getAsyncEngine(confDisembl); + String jobId = aengine.submitJob(confDisembl); + assertNotNull(jobId, "Runner is NULL"); + // let drmaa to start + Thread.sleep(500); + JobStatus status = aengine.getJobStatus(jobId); + while (status != JobStatus.FINISHED) { + System.out.println("Job Status: " + status); + Thread.sleep(1000); + status = aengine.getJobStatus(jobId); + ConfiguredExecutable result = (ConfiguredExecutable) aengine + .getResults(jobId); + assertNotNull(result); + System.out.println("RES:" + result); + // Some times the job could be removed from the cluster + // accounting + // before it has been reported to finish. Make sure + // to stop waiting in such case + if (status == JobStatus.UNDEFINED) { + break; + } + } + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail("DrmaaException caught:" + e.getMessage()); + } catch (InterruptedException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); } - } - } catch (JobSubmissionException e) { - e.printStackTrace(); - fail("DrmaaException caught:" + e.getMessage()); - } catch (InterruptedException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (ResultNotAvailableException e) { - e.printStackTrace(); - fail(e.getMessage()); } - } - @Test(groups = { AllTestSuit.test_group_runner }) - public void testRunLocally() { - try { - ConfiguredExecutable confDisembl = Configurator - .configureExecutable(disembl, Executable.ExecProvider.Local); + @Test(groups = {AllTestSuit.test_group_runner}) + public void testRunLocally() { + try { + ConfiguredExecutable confDisembl = Configurator + .configureExecutable(disembl, Executable.ExecProvider.Local); - // For local execution use relative - LocalRunner lr = new LocalRunner(confDisembl); - lr.executeJob(); - ConfiguredExecutable al1 = lr.waitForResult(); - assertNotNull(al1.getResults()); - List al2 = confDisembl.getResults(); - assertNotNull(al2); - assertEquals(al2.size(), 3); - assertEquals(al1.getResults(), al2); - } catch (JobSubmissionException e) { - e.printStackTrace(); - fail(e.getLocalizedMessage()); - } catch (ResultNotAvailableException e) { - e.printStackTrace(); - fail(e.getLocalizedMessage()); - } catch (JobExecutionException e) { - e.printStackTrace(); - fail(e.getLocalizedMessage()); + // For local execution use relative + LocalRunner lr = new LocalRunner(confDisembl); + lr.executeJob(); + ConfiguredExecutable al1 = lr.waitForResult(); + assertNotNull(al1.getResults()); + HashSet al2 = confDisembl.getResults(); + assertNotNull(al2); + assertEquals(al2.size(), 3); + assertEquals(al1.getResults(), al2); + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } } - } - @Test(groups = { AllTestSuit.test_group_runner }) - public void readStatistics() { - try { - ConfiguredExecutable confDisembl = Configurator - .configureExecutable(disembl, Executable.ExecProvider.Local); - // For local execution use relavive + @Test(groups = {AllTestSuit.test_group_runner}) + public void readStatistics() { + try { + ConfiguredExecutable confDisembl = Configurator + .configureExecutable(disembl, Executable.ExecProvider.Local); + // For local execution use relavive - AsyncExecutor sexec = Configurator.getAsyncEngine(confDisembl); - String jobId = sexec.submitJob(confDisembl); - FilePuller fw = FilePuller.newFilePuller(confDisembl - .getWorkDirectory() - + File.separator + Jronn.getStatFile(), - FileWatcher.MIN_CHUNK_SIZE_BYTES); - int count = 0; - long position = 0; - fw.waitForFile(4); - JobStatus status = sexec.getJobStatus(jobId); - while (status != JobStatus.FINISHED) { - if (fw.hasMoreData()) { - ChunkHolder ch = fw.pull(position); - String chunk = ch.getChunk(); - position = ch.getNextPosition(); + AsyncExecutor sexec = Configurator.getAsyncEngine(confDisembl); + String jobId = sexec.submitJob(confDisembl); + FilePuller fw = FilePuller.newFilePuller( + confDisembl.getWorkDirectory() + File.separator + + Jronn.getStatFile(), + FileWatcher.MIN_CHUNK_SIZE_BYTES); + int count = 0; + long position = 0; + fw.waitForFile(4); + JobStatus status = sexec.getJobStatus(jobId); + while (status != JobStatus.FINISHED) { + if (fw.hasMoreData()) { + ChunkHolder ch = fw.pull(position); + String chunk = ch.getChunk(); + position = ch.getNextPosition(); + } + count++; + // Make sure the loop is terminated if the job fails + if ((status == JobStatus.UNDEFINED || status == JobStatus.FAILED)) { + break; + } + Thread.sleep(300); + status = sexec.getJobStatus(jobId); + } + assertTrue(count > 1); + ConfiguredExecutable al = sexec.getResults(jobId); + assertNotNull(al.getResults()); + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (InterruptedException e) { + e.printStackTrace(); + fail(e.getMessage()); } - count++; - // Make sure the loop is terminated if the job fails - if ((status == JobStatus.UNDEFINED || status == JobStatus.FAILED)) { - break; - } - Thread.sleep(300); - status = sexec.getJobStatus(jobId); - } - assertTrue(count > 1); - ConfiguredExecutable al = sexec.getResults(jobId); - assertNotNull(al.getResults()); - } catch (JobSubmissionException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (ResultNotAvailableException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (IOException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (InterruptedException e) { - e.printStackTrace(); - fail(e.getMessage()); } - } - @Test(groups = { AllTestSuit.test_group_runner }) - public void testPersistance() { - try { - Disembl disembl = new Disembl(); - disembl.setError("errrr.txt").setInput(AllTestSuit.test_input) - .setOutput("outtt.txt"); - assertEquals(disembl.getInput(), AllTestSuit.test_input); - assertEquals(disembl.getError(), "errrr.txt"); - assertEquals(disembl.getOutput(), "outtt.txt"); - ConfiguredExecutable cDisembl = Configurator - .configureExecutable(disembl, Executable.ExecProvider.Local); + @Test(groups = {AllTestSuit.test_group_runner}) + public void testPersistance() { + try { + Disembl disembl = new Disembl(); + disembl.setError("errrr.txt").setInput(AllTestSuit.test_input) + .setOutput("outtt.txt"); + assertEquals(disembl.getInput(), AllTestSuit.test_input); + assertEquals(disembl.getError(), "errrr.txt"); + assertEquals(disembl.getOutput(), "outtt.txt"); + ConfiguredExecutable cDisembl = Configurator + .configureExecutable(disembl, Executable.ExecProvider.Local); - SyncExecutor sexec = Configurator.getSyncEngine(cDisembl); - sexec.executeJob(); - ConfiguredExecutable al = sexec.waitForResult(); - assertNotNull(al.getResults()); - // Save run configuration - assertTrue(cDisembl.saveRunConfiguration()); + SyncExecutor sexec = Configurator.getSyncEngine(cDisembl); + sexec.executeJob(); + ConfiguredExecutable al = sexec.waitForResult(); + assertNotNull(al.getResults()); + // Save run configuration + assertTrue(cDisembl.saveRunConfiguration()); - // See if loaded configuration is the same as saved - RunConfiguration loadedRun = RunConfiguration - .load(new FileInputStream(new File(cDisembl - .getWorkDirectory(), RunConfiguration.rconfigFile))); - assertEquals(((ConfExecutable) cDisembl) - .getRunConfiguration(), loadedRun); - // Load run configuration as ConfExecutable - ConfiguredExecutable resurrectedCDisembl = (ConfiguredExecutable) cDisembl - .loadRunConfiguration(new FileInputStream(new File(cDisembl - .getWorkDirectory(), RunConfiguration.rconfigFile))); - assertNotNull(resurrectedCDisembl); - assertEquals(resurrectedCDisembl.getExecutable().getInput(), - AllTestSuit.test_input); - assertEquals(resurrectedCDisembl.getExecutable().getError(), - "errrr.txt"); - assertEquals(resurrectedCDisembl.getExecutable().getOutput(), - "outtt.txt"); - // See in details whether executables are the same - assertEquals(resurrectedCDisembl.getExecutable(), disembl); + // See if loaded configuration is the same as saved + RunConfiguration loadedRun = RunConfiguration + .load(new FileInputStream(new File(cDisembl + .getWorkDirectory(), RunConfiguration.rconfigFile))); + assertEquals( + ((ConfExecutable) cDisembl).getRunConfiguration(), + loadedRun); + // Load run configuration as ConfExecutable + ConfiguredExecutable resurrectedCDisembl = (ConfiguredExecutable) cDisembl + .loadRunConfiguration(new FileInputStream(new File(cDisembl + .getWorkDirectory(), RunConfiguration.rconfigFile))); + assertNotNull(resurrectedCDisembl); + assertEquals(resurrectedCDisembl.getExecutable().getInput(), + AllTestSuit.test_input); + assertEquals(resurrectedCDisembl.getExecutable().getError(), + "errrr.txt"); + assertEquals(resurrectedCDisembl.getExecutable().getOutput(), + "outtt.txt"); + // See in details whether executables are the same + assertEquals(resurrectedCDisembl.getExecutable(), disembl); - ConfiguredExecutable resJronn = Configurator - .configureExecutable(resurrectedCDisembl.getExecutable(), - Executable.ExecProvider.Local); + ConfiguredExecutable resJronn = Configurator + .configureExecutable(resurrectedCDisembl.getExecutable(), + Executable.ExecProvider.Local); - sexec = Configurator.getSyncEngine(resJronn, - Executable.ExecProvider.Local); - sexec.executeJob(); - al = sexec.waitForResult(); - assertNotNull(al); + sexec = Configurator.getSyncEngine(resJronn, + Executable.ExecProvider.Local); + sexec.executeJob(); + al = sexec.waitForResult(); + assertNotNull(al); - } catch (JobSubmissionException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (JobExecutionException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (FileNotFoundException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (IOException e) { - e.printStackTrace(); - fail(e.getMessage()); - } catch (ResultNotAvailableException e) { - e.printStackTrace(); - fail(e.getMessage()); + } catch (JobSubmissionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (JobExecutionException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getMessage()); + } catch (ResultNotAvailableException e) { + e.printStackTrace(); + fail(e.getMessage()); + } } - } - @Test(groups = { AllTestSuit.test_group_runner }) - public void testConfigurationLoading() { - try { - RunnerConfig disemblConfig = ConfExecutable - .getRunnerOptions(Disembl.class); - assertNotNull(disemblConfig); - assertTrue(disemblConfig.getArguments().size() > 0); + @Test(groups = {AllTestSuit.test_group_runner}) + public void testConfigurationLoading() { + try { + RunnerConfig disemblConfig = ConfExecutable + .getRunnerOptions(Disembl.class); + assertNotNull(disemblConfig); + assertTrue(disemblConfig.getArguments().size() > 0); - PresetManager disemblPresets = ConfExecutable - .getRunnerPresets(Disembl.class); - assertNull(disemblPresets); // there is no presets + PresetManager disemblPresets = ConfExecutable + .getRunnerPresets(Disembl.class); + assertNull(disemblPresets); // there is no presets - LimitsManager disemblLimits = ConfExecutable - .getRunnerLimits(Disembl.class); - assertNotNull(disemblLimits); - assertTrue(disemblLimits.getLimits().size() > 0); - disemblLimits.validate(disemblPresets); + LimitsManager disemblLimits = ConfExecutable + .getRunnerLimits(Disembl.class); + assertNotNull(disemblLimits); + assertTrue(disemblLimits.getLimits().size() > 0); + disemblLimits.validate(disemblPresets); - } catch (FileNotFoundException e) { - e.printStackTrace(); - fail(e.getLocalizedMessage()); - } catch (IOException e) { - e.printStackTrace(); - fail(e.getLocalizedMessage()); - } catch (ValidationException e) { - e.printStackTrace(); - fail(e.getLocalizedMessage()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (IOException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } catch (ValidationException e) { + e.printStackTrace(); + fail(e.getLocalizedMessage()); + } } - } }