From 4336d73bd3c8df53ec396e9600463c8e162e20b1 Mon Sep 17 00:00:00 2001 From: danilchap Date: Fri, 3 Mar 2017 06:21:54 -0800 Subject: [PATCH] Reland of Fix flaky EndToEndTest.TransportSeqNumOnAudioAndVideo (patchset #1 id:1 of https://codereview.webrtc.org/2730893002/ ) Reason for revert: Fixing race and relanding Original issue's description: > Revert of Fix flaky EndToEndTest.TransportSeqNumOnAudioAndVideo (patchset #2 id:20001 of https://codereview.webrtc.org/2728103002/ ) > > Reason for revert: > Fails on tsan > http://build.chromium.org/p/client.webrtc/builders/Linux%20Tsan%20v2/builds/10235 > > Original issue's description: > > Fix flaky EndToEndTest.TransportSeqNumOnAudioAndVideo > > Add extra checks to it to simplify diagnostic should it fail again. > > > > BUG=webrtc:7292 > > > > Review-Url: https://codereview.webrtc.org/2728103002 > > Cr-Commit-Position: refs/heads/master@{#16999} > > Committed: https://chromium.googlesource.com/external/webrtc/+/bcb6004a9d53615a6428e070cbc6d52a2d8e833b > > TBR=asapersson@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7292 > > Review-Url: https://codereview.webrtc.org/2730893002 > Cr-Commit-Position: refs/heads/master@{#17000} > Committed: https://chromium.googlesource.com/external/webrtc/+/9a59473f2c403827a3560944c7ffe76d37ab77b9 TBR=asapersson@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7292 Review-Url: https://codereview.webrtc.org/2730673004 Cr-Commit-Position: refs/heads/master@{#17006} --- webrtc/video/end_to_end_tests.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc index cb7edd422f..f6a74fbc11 100644 --- a/webrtc/video/end_to_end_tests.cc +++ b/webrtc/video/end_to_end_tests.cc @@ -4025,7 +4025,8 @@ TEST_P(EndToEndTest, VerifyDefaultFlexfecReceiveConfigParameters) { } TEST_P(EndToEndTest, TransportSeqNumOnAudioAndVideo) { - static const int kExtensionId = 8; + static constexpr int kExtensionId = 8; + static constexpr size_t kMinPacketsToWaitFor = 50; class TransportSequenceNumberTest : public test::EndToEndTest { public: TransportSequenceNumberTest() @@ -4063,7 +4064,7 @@ TEST_P(EndToEndTest, TransportSeqNumOnAudioAndVideo) { if (header.ssrc == kAudioSendSsrc) audio_observed_ = true; if (audio_observed_ && video_observed_ && - received_packet_ids_.size() == 50) { + received_packet_ids_.size() >= kMinPacketsToWaitFor) { size_t packet_id_range = *received_packet_ids_.rbegin() - *received_packet_ids_.begin() + 1; EXPECT_EQ(received_packet_ids_.size(), packet_id_range); @@ -4077,6 +4078,12 @@ TEST_P(EndToEndTest, TransportSeqNumOnAudioAndVideo) { "packets with transport sequence number."; } + void ExpectSuccessful() { + EXPECT_TRUE(video_observed_); + EXPECT_TRUE(audio_observed_); + EXPECT_GE(received_packet_ids_.size(), kMinPacketsToWaitFor); + } + private: bool video_observed_; bool audio_observed_; @@ -4085,6 +4092,9 @@ TEST_P(EndToEndTest, TransportSeqNumOnAudioAndVideo) { } test; RunBaseTest(&test); + // Double check conditions for successful test to produce better error + // message when the test fail. + test.ExpectSuccessful(); } class EndToEndLogTest : public EndToEndTest {