Replace gunit.h macros with WaitUntil in modules/
Bug: webrtc:381524905
Change-Id: Ifde77639d720b404eda2e21275d0c3682ac933c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/374222
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43770}
diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn
index 29a7bea..c15dced 100644
--- a/modules/video_capture/BUILD.gn
+++ b/modules/video_capture/BUILD.gn
@@ -178,10 +178,13 @@
deps = [
":video_capture_internal_impl",
":video_capture_module",
+ "../../api:rtc_error_matchers",
"../../api:scoped_refptr",
+ "../../api/units:time_delta",
"../../api/video:video_frame",
"../../api/video:video_rtp_headers",
"../../common_video",
+ "../../rtc_base:checks",
"../../rtc_base:gunit_helpers",
"../../rtc_base:timeutils",
"../../rtc_base/synchronization:mutex",
@@ -190,6 +193,7 @@
"../../test:test_main",
"../../test:test_support",
"../../test:video_test_common",
+ "../../test:wait_until",
"//testing/gtest",
"//third_party/abseil-cpp/absl/memory",
]
diff --git a/modules/video_capture/test/video_capture_unittest.cc b/modules/video_capture/test/video_capture_unittest.cc
index dec8de7..6d14f90 100644
--- a/modules/video_capture/test/video_capture_unittest.cc
+++ b/modules/video_capture/test/video_capture_unittest.cc
@@ -12,22 +12,30 @@
#include <stdio.h>
+#include <cstdint>
#include <map>
#include <memory>
#include <sstream>
+#include <string>
+#include <vector>
-#include "absl/memory/memory.h"
#include "api/scoped_refptr.h"
-#include "api/video/i420_buffer.h"
+#include "api/test/rtc_error_matchers.h"
+#include "api/units/time_delta.h"
#include "api/video/video_frame.h"
-#include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "api/video/video_rotation.h"
+#include "api/video/video_sink_interface.h"
+#include "modules/video_capture/video_capture_defines.h"
#include "modules/video_capture/video_capture_factory.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/checks.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/time_utils.h"
#include "test/frame_utils.h"
+#include "test/gmock.h"
#include "test/gtest.h"
+#include "test/wait_until.h"
+using ::testing::Ge;
using webrtc::VideoCaptureCapability;
using webrtc::VideoCaptureFactory;
using webrtc::VideoCaptureModule;
@@ -203,7 +211,10 @@
EXPECT_LE(rtc::TimeMillis() - start_time, 4000);
// Make sure 5 frames are captured.
- EXPECT_TRUE_WAIT(capture_observer.incoming_frames() >= 5, kTimeOut);
+ EXPECT_THAT(webrtc::WaitUntil(
+ [&] { return capture_observer.incoming_frames(); }, Ge(5),
+ {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}),
+ webrtc::IsRtcOk());
int64_t stop_time = rtc::TimeMillis();
EXPECT_EQ(0, module->StopCapture());
@@ -254,7 +265,10 @@
capture_observer.SetExpectedCapability(capability);
ASSERT_NO_FATAL_FAILURE(StartCapture(module.get(), capability));
// Make sure at least one frame is captured.
- EXPECT_TRUE_WAIT(capture_observer.incoming_frames() >= 1, kTimeOut);
+ EXPECT_THAT(webrtc::WaitUntil(
+ [&] { return capture_observer.incoming_frames(); }, Ge(1),
+ {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}),
+ webrtc::IsRtcOk());
EXPECT_EQ(0, module->StopCapture());
}
@@ -317,8 +331,14 @@
ASSERT_NO_FATAL_FAILURE(StartCapture(module1.get(), capability1));
ASSERT_NO_FATAL_FAILURE(StartCapture(module2.get(), capability2));
- EXPECT_TRUE_WAIT(capture_observer1.incoming_frames() >= 5, kTimeOut);
- EXPECT_TRUE_WAIT(capture_observer2.incoming_frames() >= 5, kTimeOut);
+ EXPECT_THAT(webrtc::WaitUntil(
+ [&] { return capture_observer1.incoming_frames(); }, Ge(5),
+ {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}),
+ webrtc::IsRtcOk());
+ EXPECT_THAT(webrtc::WaitUntil(
+ [&] { return capture_observer2.incoming_frames(); }, Ge(5),
+ {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}),
+ webrtc::IsRtcOk());
EXPECT_EQ(0, module2->StopCapture());
EXPECT_EQ(0, module1->StopCapture());
}
@@ -346,12 +366,18 @@
// Starting module1 should work.
ASSERT_NO_FATAL_FAILURE(StartCapture(module1.get(), capability));
- EXPECT_TRUE_WAIT(capture_observer1.incoming_frames() >= 5, kTimeOut);
+ EXPECT_THAT(webrtc::WaitUntil(
+ [&] { return capture_observer1.incoming_frames(); }, Ge(5),
+ {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}),
+ webrtc::IsRtcOk());
// When module1 is stopped, starting module2 for the same device should work.
EXPECT_EQ(0, module1->StopCapture());
ASSERT_NO_FATAL_FAILURE(StartCapture(module2.get(), capability));
- EXPECT_TRUE_WAIT(capture_observer2.incoming_frames() >= 5, kTimeOut);
+ EXPECT_THAT(webrtc::WaitUntil(
+ [&] { return capture_observer2.incoming_frames(); }, Ge(5),
+ {.timeout = webrtc::TimeDelta::Millis(kTimeOut)}),
+ webrtc::IsRtcOk());
EXPECT_EQ(0, module2->StopCapture());
}