Index: base/sequence_checker_unittest.cc |
diff --git a/base/sequence_checker_unittest.cc b/base/sequence_checker_unittest.cc |
index 41fd77be63ff7f053f8a6901b677903f6b05d4c3..d84e2d10051a7c5095cf8664f6b4dbf3ca19f21a 100644 |
--- a/base/sequence_checker_unittest.cc |
+++ b/base/sequence_checker_unittest.cc |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/sequence_checker.h" |
+ |
#include <stddef.h> |
#include <memory> |
@@ -12,9 +14,9 @@ |
#include "base/callback_forward.h" |
#include "base/macros.h" |
#include "base/message_loop/message_loop.h" |
-#include "base/sequence_checker_impl.h" |
#include "base/sequence_token.h" |
#include "base/single_thread_task_runner.h" |
+#include "base/test/gtest_util.h" |
#include "base/test/sequenced_worker_pool_owner.h" |
#include "base/threading/simple_thread.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -256,4 +258,28 @@ TEST_F(SequenceCheckerTest, |
second_pool_owner.pool()->FlushForTesting(); |
} |
+TEST_F(SequenceCheckerTest, Macros) { |
+ SEQUENCE_CHECKER(my_sequence_checker); |
+ |
+ PostToSequencedWorkerPool( |
+ Bind([](SequenceChecker* sequence_checker) { |
+#if DCHECK_IS_ON() |
+ EXPECT_DCHECK_DEATH({ DCHECK_CALLED_ON_VALID_SEQUENCE(*sequence_checker); }); |
+#else |
+ // Happily no-ops on non-dcheck builds. |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(*sequence_checker); |
+#endif |
+ }, Unretained(&my_sequence_checker)), "A"); |
+ FlushSequencedWorkerPoolForTesting(); |
+ |
+ DETACH_FROM_SEQUENCE(my_sequence_checker); |
+ |
+ PostToSequencedWorkerPool( |
+ Bind([](SequenceChecker* sequence_checker) { |
+ // Happily passes after detaching from original sequence. |
+ DCHECK_CALLED_ON_VALID_SEQUENCE(*sequence_checker); |
+ }, Unretained(&my_sequence_checker)), "A"); |
+ FlushSequencedWorkerPoolForTesting(); |
+} |
+ |
} // namespace base |