cleanup the Java divide by zero end-to-end test

Summary:public
This just simplifies the end-to-end tests for Dividde By Zero to make the debugging easier when this test fails.

Reviewed By: cristianoc

Differential Revision: D2966296

fb-gh-sync-id: 5eaa1b5
shipit-source-id: 5eaa1b5
master
jrm 9 years ago committed by facebook-github-bot-1
parent 73a07dc44e
commit ba4dbef2d9

@ -10,9 +10,7 @@
package endtoend.java.infer; package endtoend.java.infer;
import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;
import static utils.matchers.ResultContainsErrorInMethod.contains; import static utils.matchers.ResultContainsExactly.containsExactly;
import static utils.matchers.ResultContainsLineNumbers.containsLines;
import static utils.matchers.ResultContainsOnlyTheseErrors.containsOnly;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
@ -24,7 +22,7 @@ import utils.InferResults;
public class DivideByZeroTest { public class DivideByZeroTest {
public static final String DivideByZero = public static final String SOURCE_FILE =
"infer/tests/codetoanalyze/java/infer/DivideByZero.java"; "infer/tests/codetoanalyze/java/infer/DivideByZero.java";
public static final String DIVIDE_BY_ZERO = "DIVIDE_BY_ZERO"; public static final String DIVIDE_BY_ZERO = "DIVIDE_BY_ZERO";
@ -33,74 +31,22 @@ public class DivideByZeroTest {
@BeforeClass @BeforeClass
public static void loadResults() throws InterruptedException, IOException { public static void loadResults() throws InterruptedException, IOException {
inferResults = InferResults.loadInferResults(DivideByZeroTest.class, DivideByZero); inferResults = InferResults.loadInferResults(DivideByZeroTest.class, SOURCE_FILE);
} }
@Test @Test
public void whenInferRunsOnDivideByZeroLocalThenDivideByZeroErrorFound() public void matchErrors()
throws InterruptedException, IOException, InferException { throws IOException, InterruptedException, InferException {
assertThat( String[] methods = {
"Results should contain divide by zero error.", inferResults,
contains(
DIVIDE_BY_ZERO,
DivideByZero,
"divByZeroLocal"
)
);
}
@Test
public void whenInferRunsOnCallDivideByZeroInterProcThenDivideByZeroErrorFound()
throws InterruptedException, IOException, InferException {
assertThat(
"Results should contain divide by zero error.",
inferResults,
contains(
DIVIDE_BY_ZERO,
DivideByZero,
"callDivideByZeroInterProc"
)
);
}
@Test
public void whenInferRunsOnDivideByZeroWithStaticFieldThenDivideByZeroErrorFound()
throws InterruptedException, IOException, InferException {
assertThat(
"Results should contain divide by zero error.",
inferResults,
contains(
DIVIDE_BY_ZERO,
DivideByZero,
"divideByZeroWithStaticField"
)
);
}
@Test
public void whenInferRunsOnDivideByZeroThenTheLineNumbersAreReportedCorr()
throws InterruptedException, IOException, InferException {
int[] lines = {28};
assertThat(
"Result should contain correct line numbers.",
inferResults,
containsLines(lines));
}
@Test
public void whenInferRunsOnDivideByZeroThenOnlyTheExpectedErrorsAreFound()
throws InterruptedException, IOException, InferException {
String[] expectedMethods = {
"divByZeroLocal", "divByZeroLocal",
"callDivideByZeroInterProc", "callDivideByZeroInterProc",
"divideByZeroWithStaticField" "divideByZeroWithStaticField",
}; };
assertThat( assertThat("Results should contain " + DIVIDE_BY_ZERO,
"No unexpected errors should be found", inferResults, inferResults,
containsOnly( containsExactly(DIVIDE_BY_ZERO,
DIVIDE_BY_ZERO, SOURCE_FILE,
DivideByZero, methods));
expectedMethods));
} }
} }

Loading…
Cancel
Save