diff options
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.cc | 12 |
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( |