aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2017-03-20 13:52:06 +0000
committerGravatar Yue Gan <yueg@google.com>2017-03-21 12:47:29 +0000
commitceb0f62bd8726ef4bb6799fe2711680c531d2c18 (patch)
tree7f938827fc2bdb2e9899ff4089dba8de16e10c5b /src/test
parent0cdefa97ec4214ecf160d1ce1419c36dedf94601 (diff)
BuildEventStreamer: fix handling of postedEvents
Always initialize the set of postedEvents. Also, record the initial event as posted. In this way, the build event streamer can also handle events that should be posted after the BuildStartedEvent but are told the streamer about earlier. -- Change-Id: Ic796f2434434819e6c62633755411527a9dcb7e0 Reviewed-on: https://cr.bazel.build/9451 PiperOrigin-RevId: 150620387 MOS_MIGRATED_REVID=150620387
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java
index 433f9fb4d8..5a4e444bfe 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java
@@ -297,4 +297,29 @@ public class BuildEventStreamerTest {
assertEquals(rootCauseId, allEventsSeen.get(3).getEventId());
assertEquals(failedTarget.getEventId(), allEventsSeen.get(4).getEventId());
}
+
+ @Test
+ public void testVeryFirstEventNeedsToWait() {
+ // Verify that we can handle an first event waiting for another event.
+ RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
+ BuildEventStreamer streamer =
+ new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport));
+
+ BuildEventId initialId = testId("Initial");
+ BuildEventId waitId = testId("Waiting for initial event");
+ BuildEvent startEvent =
+ new GenericBuildEvent(
+ initialId,
+ ImmutableSet.<BuildEventId>of(ProgressEvent.INITIAL_PROGRESS_UPDATE, waitId));
+ BuildEvent waitingForStart =
+ new GenericOrderEvent(waitId, ImmutableSet.<BuildEventId>of(), ImmutableSet.of(initialId));
+
+ streamer.buildEvent(waitingForStart);
+ streamer.buildEvent(startEvent);
+
+ List<BuildEvent> allEventsSeen = transport.getEvents();
+ assertThat(allEventsSeen).hasSize(2);
+ assertEquals(startEvent.getEventId(), allEventsSeen.get(0).getEventId());
+ assertEquals(waitingForStart.getEventId(), allEventsSeen.get(1).getEventId());
+ }
}