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_and_task_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 |
11 TEST(SequenceTokenTest, IsValid) { | 11 TEST(SequenceTokenTest, IsValid) { |
12 EXPECT_FALSE(SequenceToken().IsValid()); | 12 EXPECT_FALSE(SequenceToken().IsValid()); |
13 EXPECT_TRUE(SequenceToken::Create().IsValid()); | 13 EXPECT_TRUE(SequenceToken::Create().IsValid()); |
14 } | 14 } |
15 | 15 |
(...skipping 30 matching lines...) Expand all Loading... | |
46 EXPECT_FALSE(valid_a != valid_a); | 46 EXPECT_FALSE(valid_a != valid_a); |
47 EXPECT_NE(valid_a, valid_b); | 47 EXPECT_NE(valid_a, valid_b); |
48 } | 48 } |
49 | 49 |
50 TEST(SequenceTokenTest, GetForCurrentThread) { | 50 TEST(SequenceTokenTest, GetForCurrentThread) { |
51 const SequenceToken token = SequenceToken::Create(); | 51 const SequenceToken token = SequenceToken::Create(); |
52 | 52 |
53 EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid()); | 53 EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid()); |
54 | 54 |
55 { | 55 { |
56 ScopedSetSequenceTokenForCurrentThread | 56 ScopedSetSequenceAndTaskTokenForCurrentThread |
57 scoped_set_sequence_token_for_current_thread(token); | 57 scoped_set_sequence_and_task_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 ScopedSetSequenceAndTaskTokenForCurrentThread to be invalid. | |
74 TEST(TaskTokenTest, InvalidOutsideScope) { | |
75 EXPECT_FALSE(TaskToken::GetForCurrentThread().IsValid()); | |
76 } | |
77 | |
78 // Expect TaskTokens returned by TaskToken::GetForCurrentThread() in the scope | |
79 // of the same ScopedSetSequenceAndTaskTokenForCurrentThread instance to be | |
80 // valid and equal with each other, but not equal to an invalid TaskToken. | |
gab
2016/08/08 16:34:22
"but not equal to an invalid TaskToken" -- isn't t
fdoray
2016/08/08 17:45:18
Done.
| |
81 TEST(TaskTokenTest, EqualInSameScope) { | |
82 ScopedSetSequenceAndTaskTokenForCurrentThread | |
83 scoped_set_sequence_and_task_token_for_current_thread( | |
84 SequenceToken::Create()); | |
85 | |
86 const TaskToken token_a = TaskToken::GetForCurrentThread(); | |
87 const TaskToken token_b = TaskToken::GetForCurrentThread(); | |
88 | |
89 EXPECT_TRUE(token_a.IsValid()); | |
90 EXPECT_TRUE(token_b.IsValid()); | |
91 | |
92 EXPECT_EQ(token_a, token_b); | |
93 EXPECT_NE(token_a, TaskToken()); | |
94 EXPECT_NE(token_b, TaskToken()); | |
gab
2016/08/08 16:34:22
rm last two conditions IMO per above comment
fdoray
2016/08/08 17:45:18
Done.
| |
95 } | |
96 | |
97 // Expect TaskTokens returned by TaskToken::GetForCurrentThread() in the scope | |
98 // of different ScopedSetSequenceAndTaskTokenForCurrentThread instances to be | |
99 // valid but not equal to each other or to an invalid TaskToken. | |
100 TEST(TaskTokenTest, NotEqualInDifferentScopes) { | |
101 TaskToken token_a; | |
102 TaskToken token_b; | |
103 | |
104 { | |
105 ScopedSetSequenceAndTaskTokenForCurrentThread | |
106 scoped_set_sequence_and_task_token_for_current_thread( | |
107 SequenceToken::Create()); | |
108 token_a = TaskToken::GetForCurrentThread(); | |
109 } | |
110 { | |
111 ScopedSetSequenceAndTaskTokenForCurrentThread | |
112 scoped_set_sequence_and_task_token_for_current_thread( | |
113 SequenceToken::Create()); | |
114 token_b = TaskToken::GetForCurrentThread(); | |
115 } | |
116 | |
117 EXPECT_TRUE(token_a.IsValid()); | |
118 EXPECT_TRUE(token_b.IsValid()); | |
119 | |
120 EXPECT_NE(token_a, token_b); | |
121 EXPECT_NE(token_a, TaskToken()); | |
122 EXPECT_NE(token_b, TaskToken()); | |
gab
2016/08/08 16:34:22
ditto
fdoray
2016/08/08 17:45:18
Done.
| |
123 } | |
124 | |
65 } // namespace base | 125 } // namespace base |
OLD | NEW |