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

Side by Side Diff: base/synchronization/lock_unittest.cc

Issue 10004001: Add virtual and OVERRIDE to base/ implementation files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Win Fix -> Missing header Created 8 years, 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/synchronization/lock.h"
6
5 #include <stdlib.h> 7 #include <stdlib.h>
6 8
7 #include "base/synchronization/lock.h" 9 #include "base/compiler_specific.h"
8 #include "base/threading/platform_thread.h" 10 #include "base/threading/platform_thread.h"
9 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
10 12
11 namespace base { 13 namespace base {
12 14
13 // Basic test to make sure that Acquire()/Release()/Try() don't crash ---------- 15 // Basic test to make sure that Acquire()/Release()/Try() don't crash ----------
14 16
15 class BasicLockTestThread : public PlatformThread::Delegate { 17 class BasicLockTestThread : public PlatformThread::Delegate {
16 public: 18 public:
17 BasicLockTestThread(Lock* lock) : lock_(lock), acquired_(0) {} 19 BasicLockTestThread(Lock* lock) : lock_(lock), acquired_(0) {}
18 20
19 virtual void ThreadMain() { 21 virtual void ThreadMain() OVERRIDE {
20 for (int i = 0; i < 10; i++) { 22 for (int i = 0; i < 10; i++) {
21 lock_->Acquire(); 23 lock_->Acquire();
22 acquired_++; 24 acquired_++;
23 lock_->Release(); 25 lock_->Release();
24 } 26 }
25 for (int i = 0; i < 10; i++) { 27 for (int i = 0; i < 10; i++) {
26 lock_->Acquire(); 28 lock_->Acquire();
27 acquired_++; 29 acquired_++;
28 PlatformThread::Sleep(TimeDelta::FromMilliseconds(rand() % 20)); 30 PlatformThread::Sleep(TimeDelta::FromMilliseconds(rand() % 20));
29 lock_->Release(); 31 lock_->Release();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 EXPECT_GE(acquired, 20); 86 EXPECT_GE(acquired, 20);
85 EXPECT_GE(thread.acquired(), 20); 87 EXPECT_GE(thread.acquired(), 20);
86 } 88 }
87 89
88 // Test that Try() works as expected ------------------------------------------- 90 // Test that Try() works as expected -------------------------------------------
89 91
90 class TryLockTestThread : public PlatformThread::Delegate { 92 class TryLockTestThread : public PlatformThread::Delegate {
91 public: 93 public:
92 TryLockTestThread(Lock* lock) : lock_(lock), got_lock_(false) {} 94 TryLockTestThread(Lock* lock) : lock_(lock), got_lock_(false) {}
93 95
94 virtual void ThreadMain() { 96 virtual void ThreadMain() OVERRIDE {
95 got_lock_ = lock_->Try(); 97 got_lock_ = lock_->Try();
96 if (got_lock_) 98 if (got_lock_)
97 lock_->Release(); 99 lock_->Release();
98 } 100 }
99 101
100 bool got_lock() const { return got_lock_; } 102 bool got_lock() const { return got_lock_; }
101 103
102 private: 104 private:
103 Lock* lock_; 105 Lock* lock_;
104 bool got_lock_; 106 bool got_lock_;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 static void DoStuff(Lock* lock, int* value) { 155 static void DoStuff(Lock* lock, int* value) {
154 for (int i = 0; i < 40; i++) { 156 for (int i = 0; i < 40; i++) {
155 lock->Acquire(); 157 lock->Acquire();
156 int v = *value; 158 int v = *value;
157 PlatformThread::Sleep(TimeDelta::FromMilliseconds(rand() % 10)); 159 PlatformThread::Sleep(TimeDelta::FromMilliseconds(rand() % 10));
158 *value = v + 1; 160 *value = v + 1;
159 lock->Release(); 161 lock->Release();
160 } 162 }
161 } 163 }
162 164
163 virtual void ThreadMain() { 165 virtual void ThreadMain() OVERRIDE {
164 DoStuff(lock_, value_); 166 DoStuff(lock_, value_);
165 } 167 }
166 168
167 private: 169 private:
168 Lock* lock_; 170 Lock* lock_;
169 int* value_; 171 int* value_;
170 172
171 DISALLOW_COPY_AND_ASSIGN(MutexLockTestThread); 173 DISALLOW_COPY_AND_ASSIGN(MutexLockTestThread);
172 }; 174 };
173 175
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 MutexLockTestThread::DoStuff(&lock, &value); 207 MutexLockTestThread::DoStuff(&lock, &value);
206 208
207 PlatformThread::Join(handle1); 209 PlatformThread::Join(handle1);
208 PlatformThread::Join(handle2); 210 PlatformThread::Join(handle2);
209 PlatformThread::Join(handle3); 211 PlatformThread::Join(handle3);
210 212
211 EXPECT_EQ(4 * 40, value); 213 EXPECT_EQ(4 * 40, value);
212 } 214 }
213 215
214 } // namespace base 216 } // namespace base
OLDNEW
« no previous file with comments | « base/synchronization/condition_variable_unittest.cc ('k') | base/synchronization/waitable_event_posix.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698