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

Side by Side Diff: test/base-unittests/platform/mutex-unittest.cc

Issue 520503004: Merge base unit tests into src to be in line with Chrome. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 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
(Empty)
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "src/base/platform/mutex.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace v8 {
10 namespace base {
11
12 TEST(Mutex, LockGuardMutex) {
13 Mutex mutex;
14 { LockGuard<Mutex> lock_guard(&mutex); }
15 { LockGuard<Mutex> lock_guard(&mutex); }
16 }
17
18
19 TEST(Mutex, LockGuardRecursiveMutex) {
20 RecursiveMutex recursive_mutex;
21 { LockGuard<RecursiveMutex> lock_guard(&recursive_mutex); }
22 {
23 LockGuard<RecursiveMutex> lock_guard1(&recursive_mutex);
24 LockGuard<RecursiveMutex> lock_guard2(&recursive_mutex);
25 }
26 }
27
28
29 TEST(Mutex, LockGuardLazyMutex) {
30 LazyMutex lazy_mutex = LAZY_MUTEX_INITIALIZER;
31 { LockGuard<Mutex> lock_guard(lazy_mutex.Pointer()); }
32 { LockGuard<Mutex> lock_guard(lazy_mutex.Pointer()); }
33 }
34
35
36 TEST(Mutex, LockGuardLazyRecursiveMutex) {
37 LazyRecursiveMutex lazy_recursive_mutex = LAZY_RECURSIVE_MUTEX_INITIALIZER;
38 { LockGuard<RecursiveMutex> lock_guard(lazy_recursive_mutex.Pointer()); }
39 {
40 LockGuard<RecursiveMutex> lock_guard1(lazy_recursive_mutex.Pointer());
41 LockGuard<RecursiveMutex> lock_guard2(lazy_recursive_mutex.Pointer());
42 }
43 }
44
45
46 TEST(Mutex, MultipleMutexes) {
47 Mutex mutex1;
48 Mutex mutex2;
49 Mutex mutex3;
50 // Order 1
51 mutex1.Lock();
52 mutex2.Lock();
53 mutex3.Lock();
54 mutex1.Unlock();
55 mutex2.Unlock();
56 mutex3.Unlock();
57 // Order 2
58 mutex1.Lock();
59 mutex2.Lock();
60 mutex3.Lock();
61 mutex3.Unlock();
62 mutex2.Unlock();
63 mutex1.Unlock();
64 }
65
66
67 TEST(Mutex, MultipleRecursiveMutexes) {
68 RecursiveMutex recursive_mutex1;
69 RecursiveMutex recursive_mutex2;
70 // Order 1
71 recursive_mutex1.Lock();
72 recursive_mutex2.Lock();
73 EXPECT_TRUE(recursive_mutex1.TryLock());
74 EXPECT_TRUE(recursive_mutex2.TryLock());
75 recursive_mutex1.Unlock();
76 recursive_mutex1.Unlock();
77 recursive_mutex2.Unlock();
78 recursive_mutex2.Unlock();
79 // Order 2
80 recursive_mutex1.Lock();
81 EXPECT_TRUE(recursive_mutex1.TryLock());
82 recursive_mutex2.Lock();
83 EXPECT_TRUE(recursive_mutex2.TryLock());
84 recursive_mutex2.Unlock();
85 recursive_mutex1.Unlock();
86 recursive_mutex2.Unlock();
87 recursive_mutex1.Unlock();
88 }
89
90 } // namespace base
91 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698