Index: base/thread_unittest.cc |
=================================================================== |
--- base/thread_unittest.cc (revision 8282) |
+++ base/thread_unittest.cc (working copy) |
@@ -37,6 +37,20 @@ |
int msec_; |
}; |
+class SleepInsideInitThread : public Thread { |
+ public: |
+ SleepInsideInitThread() : Thread("none") { init_called_ = false; } |
Mark Mentovai
2009/01/22 19:36:10
Prefer |init_called_(false) { }| for constructors.
|
+ virtual ~SleepInsideInitThread() { } |
+ |
+ virtual void Init() { |
+ PlatformThread::Sleep(1000); |
+ init_called_ = true; |
+ } |
+ bool InitCalled() { return init_called_; } |
Mark Mentovai
2009/01/22 19:36:10
It's almost not worth mentioning for this because
|
+ 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()); |
+} |
+ |
Mark Mentovai
2009/01/22 19:36:10
Nit: kill trailing blank line.
|