Supervised user import: Listen for profile creation/deletion
[chromium-blink-merge.git] / base / test / thread_test_helper.cc
blob2bd3ba54ac2e98a51cb1a5fce4d79eb37c5fff2b
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(
14 const scoped_refptr<MessageLoopProxy>& target_thread)
15 : test_result_(false),
16 target_thread_(target_thread),
17 done_event_(false, false) {
20 bool ThreadTestHelper::Run() {
21 if (!target_thread_->PostTask(
22 FROM_HERE, base::Bind(&ThreadTestHelper::RunInThread, this))) {
23 return false;
25 base::ThreadRestrictions::ScopedAllowWait allow_wait;
26 done_event_.Wait();
27 return test_result_;
30 void ThreadTestHelper::RunTest() { set_test_result(true); }
32 ThreadTestHelper::~ThreadTestHelper() {}
34 void ThreadTestHelper::RunInThread() {
35 RunTest();
36 done_event_.Signal();
39 } // namespace base