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 |