| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/bind_helpers.h" | 7 #include "base/bind_helpers.h" |
| 8 #include "base/location.h" | 8 #include "base/location.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 | 254 |
| 255 #if ENABLE_SEQUENCE_CHECKER | 255 #if ENABLE_SEQUENCE_CHECKER |
| 256 TEST_F(SequenceCheckerTest, DifferentSequenceTokensDeathTestInDebug) { | 256 TEST_F(SequenceCheckerTest, DifferentSequenceTokensDeathTestInDebug) { |
| 257 // The default style "fast" does not support multi-threaded tests. | 257 // The default style "fast" does not support multi-threaded tests. |
| 258 ::testing::FLAGS_gtest_death_test_style = "threadsafe"; | 258 ::testing::FLAGS_gtest_death_test_style = "threadsafe"; |
| 259 ASSERT_DEATH({ | 259 ASSERT_DEATH({ |
| 260 DifferentSequenceTokensDeathTest(); | 260 DifferentSequenceTokensDeathTest(); |
| 261 }, ""); | 261 }, ""); |
| 262 } | 262 } |
| 263 #else | 263 #else |
| 264 TEST_F(SequenceCheckerTest, | 264 TEST_F(SequenceCheckerTest, DifferentSequenceTokensDeathTestInRelease) { |
| 265 DifferentSequenceTokensDeathTestInRelease) { | |
| 266 DifferentSequenceTokensDeathTest(); | 265 DifferentSequenceTokensDeathTest(); |
| 267 } | 266 } |
| 268 #endif // ENABLE_SEQUENCE_CHECKER | 267 #endif // ENABLE_SEQUENCE_CHECKER |
| 269 | 268 |
| 270 void SequenceCheckerTest::WorkerPoolAndSimpleThreadDeathTest() { | 269 void SequenceCheckerTest::WorkerPoolAndSimpleThreadDeathTest() { |
| 271 scoped_ptr<SequenceCheckedObject> sequence_checked_object( | 270 scoped_ptr<SequenceCheckedObject> sequence_checked_object( |
| 272 new SequenceCheckedObject); | 271 new SequenceCheckedObject); |
| 273 | 272 |
| 274 sequence_checked_object->DetachFromSequence(); | 273 sequence_checked_object->DetachFromSequence(); |
| 275 PostDoStuffToWorkerPool(sequence_checked_object.get(), "A"); | 274 PostDoStuffToWorkerPool(sequence_checked_object.get(), "A"); |
| 276 PostDoStuffToWorkerPool(sequence_checked_object.get(), "A"); | 275 PostDoStuffToWorkerPool(sequence_checked_object.get(), "A"); |
| 277 pool()->FlushForTesting(); | 276 pool()->FlushForTesting(); |
| 278 | 277 |
| 279 PostDoStuffToOtherThread(sequence_checked_object.get()); | 278 PostDoStuffToOtherThread(sequence_checked_object.get()); |
| 280 other_thread()->Stop(); | 279 other_thread()->Stop(); |
| 281 } | 280 } |
| 282 | 281 |
| 283 #if ENABLE_SEQUENCE_CHECKER | 282 #if ENABLE_SEQUENCE_CHECKER |
| 284 TEST_F(SequenceCheckerTest, WorkerPoolAndSimpleThreadDeathTestInDebug) { | 283 TEST_F(SequenceCheckerTest, WorkerPoolAndSimpleThreadDeathTestInDebug) { |
| 285 // The default style "fast" does not support multi-threaded tests. | 284 // The default style "fast" does not support multi-threaded tests. |
| 286 ::testing::FLAGS_gtest_death_test_style = "threadsafe"; | 285 ::testing::FLAGS_gtest_death_test_style = "threadsafe"; |
| 287 ASSERT_DEATH({ | 286 ASSERT_DEATH({ |
| 288 WorkerPoolAndSimpleThreadDeathTest(); | 287 WorkerPoolAndSimpleThreadDeathTest(); |
| 289 }, ""); | 288 }, ""); |
| 290 } | 289 } |
| 291 #else | 290 #else |
| 292 TEST_F(SequenceCheckerTest, | 291 TEST_F(SequenceCheckerTest, WorkerPoolAndSimpleThreadDeathTestInRelease) { |
| 293 WorkerPoolAndSimpleThreadDeathTestInRelease) { | |
| 294 WorkerPoolAndSimpleThreadDeathTest(); | 292 WorkerPoolAndSimpleThreadDeathTest(); |
| 295 } | 293 } |
| 296 #endif // ENABLE_SEQUENCE_CHECKER | 294 #endif // ENABLE_SEQUENCE_CHECKER |
| 297 | 295 |
| 298 void SequenceCheckerTest::TwoDifferentWorkerPoolsDeathTest() { | 296 void SequenceCheckerTest::TwoDifferentWorkerPoolsDeathTest() { |
| 299 scoped_ptr<SequenceCheckedObject> sequence_checked_object( | 297 scoped_ptr<SequenceCheckedObject> sequence_checked_object( |
| 300 new SequenceCheckedObject); | 298 new SequenceCheckedObject); |
| 301 | 299 |
| 302 sequence_checked_object->DetachFromSequence(); | 300 sequence_checked_object->DetachFromSequence(); |
| 303 PostDoStuffToWorkerPool(sequence_checked_object.get(), "A"); | 301 PostDoStuffToWorkerPool(sequence_checked_object.get(), "A"); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 316 | 314 |
| 317 #if ENABLE_SEQUENCE_CHECKER | 315 #if ENABLE_SEQUENCE_CHECKER |
| 318 TEST_F(SequenceCheckerTest, TwoDifferentWorkerPoolsDeathTestInDebug) { | 316 TEST_F(SequenceCheckerTest, TwoDifferentWorkerPoolsDeathTestInDebug) { |
| 319 // The default style "fast" does not support multi-threaded tests. | 317 // The default style "fast" does not support multi-threaded tests. |
| 320 ::testing::FLAGS_gtest_death_test_style = "threadsafe"; | 318 ::testing::FLAGS_gtest_death_test_style = "threadsafe"; |
| 321 ASSERT_DEATH({ | 319 ASSERT_DEATH({ |
| 322 TwoDifferentWorkerPoolsDeathTest(); | 320 TwoDifferentWorkerPoolsDeathTest(); |
| 323 }, ""); | 321 }, ""); |
| 324 } | 322 } |
| 325 #else | 323 #else |
| 326 TEST_F(SequenceCheckerTest, | 324 TEST_F(SequenceCheckerTest, TwoDifferentWorkerPoolsDeathTestInRelease) { |
| 327 TwoDifferentWorkerPoolsDeathTestInRelease) { | |
| 328 TwoDifferentWorkerPoolsDeathTest(); | 325 TwoDifferentWorkerPoolsDeathTest(); |
| 329 } | 326 } |
| 330 #endif // ENABLE_SEQUENCE_CHECKER | 327 #endif // ENABLE_SEQUENCE_CHECKER |
| 331 | 328 |
| 332 #endif // GTEST_HAS_DEATH_TEST || !ENABLE_SEQUENCE_CHECKER | 329 #endif // GTEST_HAS_DEATH_TEST || !ENABLE_SEQUENCE_CHECKER |
| 333 | 330 |
| 334 } // namespace | 331 } // namespace |
| 335 | 332 |
| 336 } // namespace base | 333 } // namespace base |
| 337 | 334 |
| 338 // Just in case we ever get lumped together with other compilation units. | 335 // Just in case we ever get lumped together with other compilation units. |
| 339 #undef ENABLE_SEQUENCE_CHECKER | 336 #undef ENABLE_SEQUENCE_CHECKER |
| OLD | NEW |