Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / base / test / thread_test_helper.cc
bloba91517df3d0ab1996f6727aff56c33b9ac0cdde2
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/test/thread_test_helper.h"
7 #include "base/bind.h"
8 #include "base/location.h"
9 #include "base/threading/thread_restrictions.h"
11 namespace base {
13 ThreadTestHelper::ThreadTestHelper(MessageLoopProxy* target_thread)
14 : test_result_(false),
15 target_thread_(target_thread),
16 done_event_(false, false) {
19 bool ThreadTestHelper::Run() {
20 if (!target_thread_->PostTask(
21 FROM_HERE, base::Bind(&ThreadTestHelper::RunInThread, this))) {
22 return false;
24 base::ThreadRestrictions::ScopedAllowWait allow_wait;
25 done_event_.Wait();
26 return test_result_;
29 void ThreadTestHelper::RunTest() { set_test_result(true); }
31 ThreadTestHelper::~ThreadTestHelper() {}
33 void ThreadTestHelper::RunInThread() {
34 RunTest();
35 done_event_.Signal();
38 } // namespace base