Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(560)

Unified Diff: base/sequence_token_unittest.cc

Issue 2213263002: Make ThreadChecker::CalledOnValidThread() return true when called from the same task. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR gab #6 (fix comment) Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/sequence_token_unittest.cc
diff --git a/base/sequence_token_unittest.cc b/base/sequence_token_unittest.cc
index ff8725e02f330c1508e03600075be134f75123fd..23e6283e9c2f7cda8f1ad674b62fbab28794bce2 100644
--- a/base/sequence_token_unittest.cc
+++ b/base/sequence_token_unittest.cc
@@ -62,4 +62,64 @@ TEST(SequenceTokenTest, GetForCurrentThread) {
EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid());
}
+// Expect a default-constructed TaskToken to be invalid and not equal to
+// another invalid TaskToken.
+TEST(TaskTokenTest, InvalidDefaultConstructed) {
+ EXPECT_FALSE(TaskToken().IsValid());
+ EXPECT_NE(TaskToken(), TaskToken());
+}
+
+// Expect a TaskToken returned by TaskToken::GetForCurrentThread() outside the
+// scope of a ScopedSetSequenceTokenForCurrentThread to be invalid.
+TEST(TaskTokenTest, InvalidOutsideScope) {
+ EXPECT_FALSE(TaskToken::GetForCurrentThread().IsValid());
+}
+
+// Expect an invalid TaskToken not to be equal with a valid TaskToken.
+TEST(TaskTokenTest, ValidNotEqualsInvalid) {
+ ScopedSetSequenceTokenForCurrentThread
+ scoped_set_sequence_token_for_current_thread(SequenceToken::Create());
+ TaskToken valid = TaskToken::GetForCurrentThread();
+ TaskToken invalid;
+ EXPECT_NE(valid, invalid);
+}
+
+// Expect TaskTokens returned by TaskToken::GetForCurrentThread() in the scope
+// of the same ScopedSetSequenceTokenForCurrentThread instance to be
+// valid and equal with each other.
+TEST(TaskTokenTest, EqualInSameScope) {
+ ScopedSetSequenceTokenForCurrentThread
+ scoped_set_sequence_token_for_current_thread(SequenceToken::Create());
+
+ const TaskToken token_a = TaskToken::GetForCurrentThread();
+ const TaskToken token_b = TaskToken::GetForCurrentThread();
+
+ EXPECT_TRUE(token_a.IsValid());
+ EXPECT_TRUE(token_b.IsValid());
+ EXPECT_EQ(token_a, token_b);
+}
+
+// Expect TaskTokens returned by TaskToken::GetForCurrentThread() in the scope
+// of different ScopedSetSequenceTokenForCurrentThread instances to be
+// valid but not equal to each other.
+TEST(TaskTokenTest, NotEqualInDifferentScopes) {
+ TaskToken token_a;
+ TaskToken token_b;
+
+ {
+ ScopedSetSequenceTokenForCurrentThread
+ scoped_set_sequence_token_for_current_thread(SequenceToken::Create());
+ token_a = TaskToken::GetForCurrentThread();
+ }
+ {
+ ScopedSetSequenceTokenForCurrentThread
+ scoped_set_sequence_token_for_current_thread(SequenceToken::Create());
+ token_b = TaskToken::GetForCurrentThread();
+ }
+
+ EXPECT_TRUE(token_a.IsValid());
+ EXPECT_TRUE(token_b.IsValid());
+ EXPECT_NE(token_a, token_b);
+}
+
} // namespace base

Powered by Google App Engine
This is Rietveld 408576698