Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: webrtc/video/vie_encoder_unittest.cc

Issue 2722183004: Fix flaky ViEEncoder tests. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/vie_encoder_unittest.cc
diff --git a/webrtc/video/vie_encoder_unittest.cc b/webrtc/video/vie_encoder_unittest.cc
index 823df77b0c175bbf738735773f48e77f77e585f8..eedf771ac6d907ee44fb836b4b429f5901461a2d 100644
--- a/webrtc/video/vie_encoder_unittest.cc
+++ b/webrtc/video/vie_encoder_unittest.cc
@@ -81,6 +81,16 @@ class ViEEncoderUnderTest : public ViEEncoder {
ASSERT_TRUE(event.Wait(5000));
}
+ // This is used as a synchronisation mechanism, to make sure that the
+ // encoder queue is not blocked before we start sending it frames.
+ void WaitUntilTaskQueueIsIdle() {
+ rtc::Event event(false, false);
+ encoder_queue()->PostTask([&event] {
+ event.Set();
+ });
+ ASSERT_TRUE(event.Wait(5000));
+ }
+
void TriggerCpuOveruse() { PostTaskAndWait(true, AdaptReason::kCpu); }
void TriggerCpuNormalUsage() { PostTaskAndWait(false, AdaptReason::kCpu); }
@@ -201,6 +211,7 @@ class ViEEncoderTest : public ::testing::Test {
vie_encoder_->SetStartBitrate(kTargetBitrateBps);
vie_encoder_->ConfigureEncoder(std::move(video_encoder_config),
kMaxPayloadLength, nack_enabled);
+ vie_encoder_->WaitUntilTaskQueueIsIdle();
}
void ResetEncoder(const std::string& payload_name,
@@ -251,6 +262,7 @@ class ViEEncoderTest : public ::testing::Test {
}
VideoEncoder::ScalingSettings GetScalingSettings() const override {
+ rtc::CritScope lock(&local_crit_sect_);
if (quality_scaling_)
return VideoEncoder::ScalingSettings(true, 1, 2);
return VideoEncoder::ScalingSettings(false);
@@ -265,7 +277,10 @@ class ViEEncoderTest : public ::testing::Test {
EXPECT_EQ(ntp_time_ms_, ntp_time_ms);
}
- void SetQualityScaling(bool b) { quality_scaling_ = b; }
+ void SetQualityScaling(bool b) {
+ rtc::CritScope lock(&local_crit_sect_);
+ quality_scaling_ = b;
+ }
private:
int32_t Encode(const VideoFrame& input_image,
@@ -331,7 +346,7 @@ class ViEEncoderTest : public ::testing::Test {
EXPECT_EQ(expected_width, width);
}
- void ExpectDroppedFrame() { EXPECT_FALSE(encoded_frame_event_.Wait(20)); }
+ void ExpectDroppedFrame() { EXPECT_FALSE(encoded_frame_event_.Wait(100)); }
void SetExpectNoFrames() {
rtc::CritScope lock(&crit_);
@@ -1139,13 +1154,7 @@ TEST_F(ViEEncoderTest, DropsFramesAndScalesWhenBitrateIsTooLow) {
vie_encoder_->Stop();
}
-#if defined(MEMORY_SANITIZER)
-// Fails under MemorySanitizer: See http://crbug.com/webrtc/7232
-#define MAYBE_NrOfDroppedFramesLimited DISABLED_NrOfDroppedFramesLimited
-#else
-#define MAYBE_NrOfDroppedFramesLimited NrOfDroppedFramesLimited
-#endif
-TEST_F(ViEEncoderTest, MAYBE_NrOfDroppedFramesLimited) {
+TEST_F(ViEEncoderTest, NrOfDroppedFramesLimited) {
// 1kbps. This can never be achieved.
vie_encoder_->OnBitrateUpdated(1000, 0, 0);
int frame_width = 640;
@@ -1188,15 +1197,7 @@ TEST_F(ViEEncoderTest, InitialFrameDropOffWithMaintainResolutionPreference) {
vie_encoder_->Stop();
}
-// Disable for TSan v2, see https://crbug.com/webrtc/7260 for details.
-#if defined(THREAD_SANITIZER)
-#define MAYBE_InitialFrameDropOffWhenEncoderDisabledScaling \
- DISABLED_InitialFrameDropOffWhenEncoderDisabledScaling
-#else
-#define MAYBE_InitialFrameDropOffWhenEncoderDisabledScaling \
- InitialFrameDropOffWhenEncoderDisabledScaling
-#endif
-TEST_F(ViEEncoderTest, MAYBE_InitialFrameDropOffWhenEncoderDisabledScaling) {
+TEST_F(ViEEncoderTest, InitialFrameDropOffWhenEncoderDisabledScaling) {
int frame_width = 640;
int frame_height = 360;
fake_encoder_.SetQualityScaling(false);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698