summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc')
-rw-r--r--chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc b/chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc
index e9931aebbe5..c480d40c246 100644
--- a/chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc
+++ b/chromium/third_party/blink/renderer/platform/wtf/threading_primitives_test.cc
@@ -28,23 +28,27 @@ class ThreadConditionTest : public testing::Test {
ThreadConditionTest() : condition_(mutex_) {}
void RunOtherThreadInfiniteWait() {
- base::internal::SetBlockingObserverForCurrentThread(&observer_);
MutexLocker lock(mutex_);
ready_.Signal();
+
+ base::internal::SetBlockingObserverForCurrentThread(&observer_);
+ EXPECT_CALL(observer_, BlockingStarted(base::BlockingType::MAY_BLOCK));
+ EXPECT_CALL(observer_, BlockingEnded());
condition_.Wait();
+ testing::Mock::VerifyAndClear(&observer_);
}
protected:
+ // Used to make sure that the other thread gets to wait before the main thread
+ // signals it. Otherwise it may wait forever.
base::WaitableEvent ready_;
+
testing::StrictMock<MockBlockingObserver> observer_;
Mutex mutex_;
ThreadCondition condition_;
};
TEST_F(ThreadConditionTest, WaitReportsBlockingCall) {
- EXPECT_CALL(observer_, BlockingStarted(base::BlockingType::MAY_BLOCK));
- EXPECT_CALL(observer_, BlockingEnded());
-
base::Thread other_thread("other thread");
other_thread.StartAndWaitForTesting();
other_thread.task_runner()->PostTask(