More extensive testing of type of error thrown in multi-threaded walker test
-- Unfortunately the result of the multi-threaded test is non-deterministic so run the test 10x times to see if the right expection is always thrown -- Now prints the stack trace and exception message of the caught exception of the wrong type, if this occurs
This commit is contained in:
parent
0dd571928d
commit
e85e9a8cf5
|
|
@ -26,18 +26,17 @@
|
||||||
package org.broadinstitute.sting;
|
package org.broadinstitute.sting;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.broad.tribble.FeatureCodec;
|
|
||||||
import org.broad.tribble.Tribble;
|
import org.broad.tribble.Tribble;
|
||||||
import org.broad.tribble.index.Index;
|
import org.broad.tribble.index.Index;
|
||||||
import org.broad.tribble.index.IndexFactory;
|
import org.broad.tribble.index.IndexFactory;
|
||||||
import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
|
|
||||||
import org.broadinstitute.sting.utils.codecs.vcf.VCFCodec;
|
|
||||||
import org.broadinstitute.sting.gatk.CommandLineExecutable;
|
import org.broadinstitute.sting.gatk.CommandLineExecutable;
|
||||||
import org.broadinstitute.sting.gatk.CommandLineGATK;
|
import org.broadinstitute.sting.gatk.CommandLineGATK;
|
||||||
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
|
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
|
||||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
|
||||||
import org.broadinstitute.sting.utils.collections.Pair;
|
|
||||||
import org.broadinstitute.sting.utils.Utils;
|
import org.broadinstitute.sting.utils.Utils;
|
||||||
|
import org.broadinstitute.sting.utils.codecs.vcf.VCFCodec;
|
||||||
|
import org.broadinstitute.sting.utils.collections.Pair;
|
||||||
|
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||||
import org.broadinstitute.sting.utils.exceptions.StingException;
|
import org.broadinstitute.sting.utils.exceptions.StingException;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
|
|
@ -315,9 +314,9 @@ public class WalkerTest extends BaseTest {
|
||||||
// it's the type we expected
|
// it's the type we expected
|
||||||
System.out.println(String.format(" => %s PASSED", name));
|
System.out.println(String.format(" => %s PASSED", name));
|
||||||
} else {
|
} else {
|
||||||
e.printStackTrace();
|
e.printStackTrace(System.out); // must print to stdout to see the message
|
||||||
Assert.fail(String.format("Test %s expected exception %s but got %s instead",
|
Assert.fail(String.format("Test %s expected exception %s but instead got %s with error message %s",
|
||||||
name, expectedException, e.getClass()));
|
name, expectedException, e.getClass(), e.getMessage()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// we didn't expect an exception but we got one :-(
|
// we didn't expect an exception but we got one :-(
|
||||||
|
|
|
||||||
|
|
@ -86,13 +86,15 @@ public class EngineFeaturesIntegrationTest extends WalkerTest {
|
||||||
// --------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------
|
||||||
|
|
||||||
private class EngineErrorHandlingTestProvider extends TestDataProvider {
|
private class EngineErrorHandlingTestProvider extends TestDataProvider {
|
||||||
Class expectedException;
|
final Class expectedException;
|
||||||
boolean multiThreaded;
|
final boolean multiThreaded;
|
||||||
|
final int iterationsToTest;
|
||||||
|
|
||||||
public EngineErrorHandlingTestProvider(Class exceptedException, final boolean multiThreaded) {
|
public EngineErrorHandlingTestProvider(Class exceptedException, final boolean multiThreaded) {
|
||||||
super(EngineErrorHandlingTestProvider.class);
|
super(EngineErrorHandlingTestProvider.class);
|
||||||
this.expectedException = exceptedException;
|
this.expectedException = exceptedException;
|
||||||
this.multiThreaded = multiThreaded;
|
this.multiThreaded = multiThreaded;
|
||||||
|
this.iterationsToTest = multiThreaded ? 10 : 1;
|
||||||
setName(String.format("Engine error handling: expected %s, is-multithreaded %b", exceptedException, multiThreaded));
|
setName(String.format("Engine error handling: expected %s, is-multithreaded %b", exceptedException, multiThreaded));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -113,9 +115,11 @@ public class EngineFeaturesIntegrationTest extends WalkerTest {
|
||||||
//
|
//
|
||||||
@Test(dataProvider = "EngineErrorHandlingTestProvider")
|
@Test(dataProvider = "EngineErrorHandlingTestProvider")
|
||||||
public void testEngineErrorHandlingTestProvider(EngineErrorHandlingTestProvider cfg) {
|
public void testEngineErrorHandlingTestProvider(EngineErrorHandlingTestProvider cfg) {
|
||||||
|
for ( int i = 0; i < cfg.iterationsToTest; i++ ) {
|
||||||
final String root = "-T ErrorThrowing -R " + b37KGReference;
|
final String root = "-T ErrorThrowing -R " + b37KGReference;
|
||||||
final String args = root + (cfg.multiThreaded ? " -nt 2" : "") + " -E " + cfg.expectedException.getSimpleName();
|
final String args = root + (cfg.multiThreaded ? " -nt 2" : "") + " -E " + cfg.expectedException.getSimpleName();
|
||||||
WalkerTestSpec spec = new WalkerTestSpec(args, 0, cfg.expectedException);
|
WalkerTestSpec spec = new WalkerTestSpec(args, 0, cfg.expectedException);
|
||||||
executeTest(cfg.toString(), spec);
|
executeTest(cfg.toString(), spec);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue