| 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
|
|
|