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

Side by Side Diff: base/sequence_and_task_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: similarity 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 unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698