VideoAdapterTest: Replace FileVideoCapturer with FakeVideoCapturer
The unittests are currently flaky due to the use of FileVideoCapturer.
BUG=4317
R=pbos@webrtc.org, pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49649004
Cr-Commit-Position: refs/heads/master@{#8969}
diff --git a/talk/media/base/videoadapter_unittest.cc b/talk/media/base/videoadapter_unittest.cc
index 8d15523..7163c42 100755
--- a/talk/media/base/videoadapter_unittest.cc
+++ b/talk/media/base/videoadapter_unittest.cc
@@ -31,10 +31,10 @@
#include <string>
#include <vector>
+#include "talk/media/base/fakevideocapturer.h"
#include "talk/media/base/mediachannel.h"
#include "talk/media/base/testutils.h"
#include "talk/media/base/videoadapter.h"
-#include "talk/media/devices/filevideocapturer.h"
#include "webrtc/base/gunit.h"
#include "webrtc/base/logging.h"
#include "webrtc/base/sigslot.h"
@@ -55,9 +55,7 @@
class VideoAdapterTest : public testing::Test {
public:
virtual void SetUp() {
- capturer_.reset(new FileVideoCapturer);
- EXPECT_TRUE(capturer_->Init(GetTestFilePath(
- "captured-320x240-2s-48.frames")));
+ capturer_.reset(new FakeVideoCapturer);
capture_format_ = capturer_->GetSupportedFormats()->at(0);
capture_format_.interval = VideoFormat::FpsToInterval(50);
adapter_.reset(new VideoAdapter());
@@ -151,7 +149,7 @@
EXPECT_EQ(height, stats.adapted_height);
}
- rtc::scoped_ptr<FileVideoCapturer> capturer_;
+ rtc::scoped_ptr<FakeVideoCapturer> capturer_;
rtc::scoped_ptr<VideoAdapter> adapter_;
rtc::scoped_ptr<VideoCapturerListener> listener_;
VideoFormat capture_format_;
@@ -172,8 +170,8 @@
// Call Adapter with some frames.
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify no frame drop and no resolution change.
VideoCapturerListener::Stats stats = listener_->GetStats();
@@ -187,8 +185,8 @@
TEST_F(VideoAdapterTest, AdaptNothing) {
adapter_->SetOutputFormat(capture_format_);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify no frame drop and no resolution change.
VideoCapturerListener::Stats stats = listener_->GetStats();
@@ -204,8 +202,8 @@
adapter_->SetInputFormat(format);
adapter_->SetOutputFormat(format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify no crash and that frames aren't dropped.
VideoCapturerListener::Stats stats = listener_->GetStats();
@@ -221,8 +219,8 @@
request_format.interval *= 2;
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify frame drop and no resolution change.
VideoCapturerListener::Stats stats = listener_->GetStats();
@@ -238,8 +236,8 @@
request_format.interval = request_format.interval * 3 / 2;
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 30, kWaitTimeout);
+ for (int i = 0; i < 30; ++i)
+ capturer_->CaptureFrame();
// Verify frame drop and no resolution change.
VideoCapturerListener::Stats stats = listener_->GetStats();
@@ -256,8 +254,8 @@
VideoFormat request_format = capture_format_;
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify no frame drop before adaptation.
EXPECT_EQ(0, listener_->GetStats().dropped_frames);
@@ -266,8 +264,8 @@
request_format.interval *= 2;
adapter_->SetOutputFormat(request_format);
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 20, kWaitTimeout);
+ for (int i = 0; i < 20; ++i)
+ capturer_->CaptureFrame();
// Verify frame drop after adaptation.
EXPECT_GT(listener_->GetStats().dropped_frames, 0);
@@ -327,8 +325,8 @@
request_format.height /= 2;
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify no frame drop and resolution change.
VideoCapturerListener::Stats stats = listener_->GetStats();
@@ -343,11 +341,13 @@
adapter_->set_scale_third(true);
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify resolution change.
- VerifyAdaptedResolution(listener_->GetStats(), 213, 160);
+ VerifyAdaptedResolution(listener_->GetStats(),
+ capture_format_.width * 2 / 3,
+ capture_format_.height * 2 / 3);
}
// Adapt the frame resolution to half height. Expect resolution change.
@@ -357,11 +357,13 @@
adapter_->set_scale_third(true);
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify resolution change.
- VerifyAdaptedResolution(listener_->GetStats(), 213, 160);
+ VerifyAdaptedResolution(listener_->GetStats(),
+ capture_format_.width * 2 / 3,
+ capture_format_.height * 2 / 3);
}
// Adapt the frame resolution to be a quarter of the capture resolution after
@@ -371,8 +373,8 @@
VideoFormat request_format = capture_format_;
adapter_->SetOutputFormat(request_format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify no resolution change before adaptation.
VerifyAdaptedResolution(
@@ -382,11 +384,8 @@
request_format.width /= 2;
request_format.height /= 2;
adapter_->SetOutputFormat(request_format);
- int captured_frames = listener_->GetStats().captured_frames;
- EXPECT_TRUE_WAIT(
- !capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= captured_frames + 10,
- kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify resolution change after adaptation.
VerifyAdaptedResolution(
@@ -398,8 +397,8 @@
VideoFormat format; // with resolution 0x0.
adapter_->SetOutputFormat(format);
EXPECT_EQ(CS_RUNNING, capturer_->Start(capture_format_));
- EXPECT_TRUE_WAIT(!capturer_->IsRunning() ||
- listener_->GetStats().captured_frames >= 10, kWaitTimeout);
+ for (int i = 0; i < 10; ++i)
+ capturer_->CaptureFrame();
// Verify all frames are dropped.
VideoCapturerListener::Stats stats = listener_->GetStats();