| Index: base/thread_unittest.cc
|
| ===================================================================
|
| --- base/thread_unittest.cc (revision 8667)
|
| +++ base/thread_unittest.cc (working copy)
|
| @@ -37,6 +37,20 @@
|
| int msec_;
|
| };
|
|
|
| +class SleepInsideInitThread : public Thread {
|
| + public:
|
| + SleepInsideInitThread() : Thread("none") { init_called_ = false; }
|
| + virtual ~SleepInsideInitThread() { }
|
| +
|
| + virtual void Init() {
|
| + PlatformThread::Sleep(500);
|
| + init_called_ = true;
|
| + }
|
| + bool InitCalled() { return init_called_; }
|
| + private:
|
| + bool init_called_;
|
| +};
|
| +
|
| } // namespace
|
|
|
| TEST_F(ThreadTest, Restart) {
|
| @@ -107,3 +121,12 @@
|
| EXPECT_TRUE(a.Start());
|
| EXPECT_EQ("ThreadName", a.thread_name());
|
| }
|
| +
|
| +// Make sure we can't use a thread between Start() and Init().
|
| +TEST_F(ThreadTest, SleepInsideInit) {
|
| + SleepInsideInitThread t;
|
| + EXPECT_FALSE(t.InitCalled());
|
| + t.Start();
|
| + EXPECT_TRUE(t.InitCalled());
|
| +}
|
| +
|
|
|