aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-11-22 12:13:20 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-11-22 12:14:55 -0800
commitfa484fd91ed3421d9685bdfe2a9851681bbcaa4f (patch)
tree55fd066da84b72dfec43e2563da900f6e1bddb0d /src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
parent2d05d10362fd6a360a2447eebb6138ff05757ec2 (diff)
Put more information in failure message of occasionally flaky test, and deduplicate code.
PiperOrigin-RevId: 176686795
Diffstat (limited to 'src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java37
1 files changed, 16 insertions, 21 deletions
diff --git a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
index f82719dfaf..4e666dc256 100644
--- a/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
+++ b/src/test/java/com/google/devtools/build/skyframe/MemoizingEvaluatorTest.java
@@ -1645,8 +1645,7 @@ public class MemoizingEvaluatorTest {
/**
* Regression test: tests that pass before other build actions fail yield crash in non -k builds.
*/
- @Test
- public void passThenFailToBuild() throws Exception {
+ private void passThenFailToBuild(boolean successFirst) throws Exception {
CountDownLatch blocker = new CountDownLatch(1);
SkyKey successKey = GraphTester.toSkyKey("success");
tester.getOrCreate(successKey).setBuilder(
@@ -1659,30 +1658,26 @@ public class MemoizingEvaluatorTest {
/*notifyFinish=*/null, /*waitForException=*/false, /*value=*/null,
/*deps=*/ImmutableList.<SkyKey>of()));
- EvaluationResult<StringValue> result = tester.eval(
- /*keepGoing=*/false, successKey, slowFailKey);
- assertThat(result.getError().getRootCauses()).containsExactly(slowFailKey);
+ EvaluationResult<StringValue> result;
+ if (successFirst) {
+ result = tester.eval(/*keepGoing=*/ false, successKey, slowFailKey);
+ } else {
+ result = tester.eval(/*keepGoing=*/ false, slowFailKey, successKey);
+ }
+ assertThatEvaluationResult(result)
+ .hasErrorEntryForKeyThat(slowFailKey)
+ .rootCauseOfExceptionIs(slowFailKey);
assertThat(result.values()).containsExactly(new StringValue("yippee"));
}
@Test
- public void passThenFailToBuildAlternateOrder() throws Exception {
- CountDownLatch blocker = new CountDownLatch(1);
- SkyKey successKey = GraphTester.toSkyKey("success");
- tester.getOrCreate(successKey).setBuilder(
- new ChainedFunction(/*notifyStart=*/null, /*waitToFinish=*/null,
- /*notifyFinish=*/blocker, /*waitForException=*/false, new StringValue("yippee"),
- /*deps=*/ImmutableList.<SkyKey>of()));
- SkyKey slowFailKey = GraphTester.toSkyKey("slow_then_fail");
- tester.getOrCreate(slowFailKey).setBuilder(
- new ChainedFunction(/*notifyStart=*/null, /*waitToFinish=*/blocker,
- /*notifyFinish=*/null, /*waitForException=*/false, /*value=*/null,
- /*deps=*/ImmutableList.<SkyKey>of()));
+ public void passThenFailToBuild() throws Exception {
+ passThenFailToBuild(true);
+ }
- EvaluationResult<StringValue> result = tester.eval(
- /*keepGoing=*/false, slowFailKey, successKey);
- assertThat(result.getError().getRootCauses()).containsExactly(slowFailKey);
- assertThat(result.values()).containsExactly(new StringValue("yippee"));
+ @Test
+ public void passThenFailToBuildAlternateOrder() throws Exception {
+ passThenFailToBuild(false);
}
@Test