diff options
author | Klaus Aehlig <aehlig@google.com> | 2017-03-20 13:52:06 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-03-21 12:47:29 +0000 |
commit | ceb0f62bd8726ef4bb6799fe2711680c531d2c18 (patch) | |
tree | 7f938827fc2bdb2e9899ff4089dba8de16e10c5b /src/test | |
parent | 0cdefa97ec4214ecf160d1ce1419c36dedf94601 (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.java | 25 |
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()); + } } |