OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/sequence_token.h" | 5 #include "base/sequence_token.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 namespace base { | 9 namespace base { |
10 | 10 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 { | 55 { |
56 ScopedSetSequenceTokenForCurrentThread | 56 ScopedSetSequenceTokenForCurrentThread |
57 scoped_set_sequence_token_for_current_thread(token); | 57 scoped_set_sequence_token_for_current_thread(token); |
58 EXPECT_TRUE(SequenceToken::GetForCurrentThread().IsValid()); | 58 EXPECT_TRUE(SequenceToken::GetForCurrentThread().IsValid()); |
59 EXPECT_EQ(token, SequenceToken::GetForCurrentThread()); | 59 EXPECT_EQ(token, SequenceToken::GetForCurrentThread()); |
60 } | 60 } |
61 | 61 |
62 EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid()); | 62 EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid()); |
63 } | 63 } |
64 | 64 |
| 65 // Expect a default-constructed TaskToken to be invalid and not equal to |
| 66 // another invalid TaskToken. |
| 67 TEST(TaskTokenTest, InvalidDefaultConstructed) { |
| 68 EXPECT_FALSE(TaskToken().IsValid()); |
| 69 EXPECT_NE(TaskToken(), TaskToken()); |
| 70 } |
| 71 |
| 72 // Expect a TaskToken returned by TaskToken::GetForCurrentThread() outside the |
| 73 // scope of a ScopedSetSequenceTokenForCurrentThread to be invalid. |
| 74 TEST(TaskTokenTest, InvalidOutsideScope) { |
| 75 EXPECT_FALSE(TaskToken::GetForCurrentThread().IsValid()); |
| 76 } |
| 77 |
| 78 // Expect an invalid TaskToken not to be equal with a valid TaskToken. |
| 79 TEST(TaskTokenTest, ValidNotEqualsInvalid) { |
| 80 ScopedSetSequenceTokenForCurrentThread |
| 81 scoped_set_sequence_token_for_current_thread(SequenceToken::Create()); |
| 82 TaskToken valid = TaskToken::GetForCurrentThread(); |
| 83 TaskToken invalid; |
| 84 EXPECT_NE(valid, invalid); |
| 85 } |
| 86 |
| 87 // Expect TaskTokens returned by TaskToken::GetForCurrentThread() in the scope |
| 88 // of the same ScopedSetSequenceTokenForCurrentThread instance to be |
| 89 // valid and equal with each other. |
| 90 TEST(TaskTokenTest, EqualInSameScope) { |
| 91 ScopedSetSequenceTokenForCurrentThread |
| 92 scoped_set_sequence_token_for_current_thread(SequenceToken::Create()); |
| 93 |
| 94 const TaskToken token_a = TaskToken::GetForCurrentThread(); |
| 95 const TaskToken token_b = TaskToken::GetForCurrentThread(); |
| 96 |
| 97 EXPECT_TRUE(token_a.IsValid()); |
| 98 EXPECT_TRUE(token_b.IsValid()); |
| 99 EXPECT_EQ(token_a, token_b); |
| 100 } |
| 101 |
| 102 // Expect TaskTokens returned by TaskToken::GetForCurrentThread() in the scope |
| 103 // of different ScopedSetSequenceTokenForCurrentThread instances to be |
| 104 // valid but not equal to each other. |
| 105 TEST(TaskTokenTest, NotEqualInDifferentScopes) { |
| 106 TaskToken token_a; |
| 107 TaskToken token_b; |
| 108 |
| 109 { |
| 110 ScopedSetSequenceTokenForCurrentThread |
| 111 scoped_set_sequence_token_for_current_thread(SequenceToken::Create()); |
| 112 token_a = TaskToken::GetForCurrentThread(); |
| 113 } |
| 114 { |
| 115 ScopedSetSequenceTokenForCurrentThread |
| 116 scoped_set_sequence_token_for_current_thread(SequenceToken::Create()); |
| 117 token_b = TaskToken::GetForCurrentThread(); |
| 118 } |
| 119 |
| 120 EXPECT_TRUE(token_a.IsValid()); |
| 121 EXPECT_TRUE(token_b.IsValid()); |
| 122 EXPECT_NE(token_a, token_b); |
| 123 } |
| 124 |
65 } // namespace base | 125 } // namespace base |
OLD | NEW |