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;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.broad.tribble.FeatureCodec;
|
||||
import org.broad.tribble.Tribble;
|
||||
import org.broad.tribble.index.Index;
|
||||
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.CommandLineGATK;
|
||||
import org.broadinstitute.sting.gatk.GenomeAnalysisEngine;
|
||||
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
|
||||
import org.broadinstitute.sting.utils.collections.Pair;
|
||||
import org.broadinstitute.sting.gatk.phonehome.GATKRunReport;
|
||||
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.testng.Assert;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
|
|
@ -315,9 +314,9 @@ public class WalkerTest extends BaseTest {
|
|||
// it's the type we expected
|
||||
System.out.println(String.format(" => %s PASSED", name));
|
||||
} else {
|
||||
e.printStackTrace();
|
||||
Assert.fail(String.format("Test %s expected exception %s but got %s instead",
|
||||
name, expectedException, e.getClass()));
|
||||
e.printStackTrace(System.out); // must print to stdout to see the message
|
||||
Assert.fail(String.format("Test %s expected exception %s but instead got %s with error message %s",
|
||||
name, expectedException, e.getClass(), e.getMessage()));
|
||||
}
|
||||
} else {
|
||||
// we didn't expect an exception but we got one :-(
|
||||
|
|
|
|||
|
|
@ -86,13 +86,15 @@ public class EngineFeaturesIntegrationTest extends WalkerTest {
|
|||
// --------------------------------------------------------------------------------
|
||||
|
||||
private class EngineErrorHandlingTestProvider extends TestDataProvider {
|
||||
Class expectedException;
|
||||
boolean multiThreaded;
|
||||
final Class expectedException;
|
||||
final boolean multiThreaded;
|
||||
final int iterationsToTest;
|
||||
|
||||
public EngineErrorHandlingTestProvider(Class exceptedException, final boolean multiThreaded) {
|
||||
super(EngineErrorHandlingTestProvider.class);
|
||||
this.expectedException = exceptedException;
|
||||
this.multiThreaded = multiThreaded;
|
||||
this.iterationsToTest = multiThreaded ? 10 : 1;
|
||||
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")
|
||||
public void testEngineErrorHandlingTestProvider(EngineErrorHandlingTestProvider cfg) {
|
||||
final String root = "-T ErrorThrowing -R " + b37KGReference;
|
||||
final String args = root + (cfg.multiThreaded ? " -nt 2" : "") + " -E " + cfg.expectedException.getSimpleName();
|
||||
WalkerTestSpec spec = new WalkerTestSpec(args, 0, cfg.expectedException);
|
||||
executeTest(cfg.toString(), spec);
|
||||
for ( int i = 0; i < cfg.iterationsToTest; i++ ) {
|
||||
final String root = "-T ErrorThrowing -R " + b37KGReference;
|
||||
final String args = root + (cfg.multiThreaded ? " -nt 2" : "") + " -E " + cfg.expectedException.getSimpleName();
|
||||
WalkerTestSpec spec = new WalkerTestSpec(args, 0, cfg.expectedException);
|
||||
executeTest(cfg.toString(), spec);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue