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

Side by Side Diff: test/cctest/test-mutex.cc

Issue 358363002: Move platform abstraction to base library (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: updates Created 6 years, 5 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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 11 matching lines...) Expand all
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 #include <cstdlib> 28 #include <cstdlib>
29 29
30 #include "src/v8.h" 30 #include "src/v8.h"
31 31
32 #include "src/platform/mutex.h" 32 #include "src/base/platform/mutex.h"
33 #include "test/cctest/cctest.h" 33 #include "test/cctest/cctest.h"
34 34
35 using namespace ::v8::internal; 35 using namespace ::v8::internal;
36 36
37 37
38 TEST(LockGuardMutex) { 38 TEST(LockGuardMutex) {
39 Mutex mutex; 39 v8::base::Mutex mutex;
40 { LockGuard<Mutex> lock_guard(&mutex); 40 { v8::base::LockGuard<v8::base::Mutex> lock_guard(&mutex);
41 } 41 }
42 { LockGuard<Mutex> lock_guard(&mutex); 42 { v8::base::LockGuard<v8::base::Mutex> lock_guard(&mutex);
43 } 43 }
44 } 44 }
45 45
46 46
47 TEST(LockGuardRecursiveMutex) { 47 TEST(LockGuardRecursiveMutex) {
48 RecursiveMutex recursive_mutex; 48 v8::base::RecursiveMutex recursive_mutex;
49 { LockGuard<RecursiveMutex> lock_guard(&recursive_mutex); 49 { v8::base::LockGuard<v8::base::RecursiveMutex> lock_guard(&recursive_mutex);
50 } 50 }
51 { LockGuard<RecursiveMutex> lock_guard1(&recursive_mutex); 51 { v8::base::LockGuard<v8::base::RecursiveMutex> lock_guard1(&recursive_mutex);
52 LockGuard<RecursiveMutex> lock_guard2(&recursive_mutex); 52 v8::base::LockGuard<v8::base::RecursiveMutex> lock_guard2(&recursive_mutex);
53 } 53 }
54 } 54 }
55 55
56 56
57 TEST(LockGuardLazyMutex) { 57 TEST(LockGuardLazyMutex) {
58 LazyMutex lazy_mutex = LAZY_MUTEX_INITIALIZER; 58 v8::base::LazyMutex lazy_mutex = LAZY_MUTEX_INITIALIZER;
59 { LockGuard<Mutex> lock_guard(lazy_mutex.Pointer()); 59 { v8::base::LockGuard<v8::base::Mutex> lock_guard(lazy_mutex.Pointer());
60 } 60 }
61 { LockGuard<Mutex> lock_guard(lazy_mutex.Pointer()); 61 { v8::base::LockGuard<v8::base::Mutex> lock_guard(lazy_mutex.Pointer());
62 } 62 }
63 } 63 }
64 64
65 65
66 TEST(LockGuardLazyRecursiveMutex) { 66 TEST(LockGuardLazyRecursiveMutex) {
67 LazyRecursiveMutex lazy_recursive_mutex = LAZY_RECURSIVE_MUTEX_INITIALIZER; 67 v8::base::LazyRecursiveMutex lazy_recursive_mutex =
68 { LockGuard<RecursiveMutex> lock_guard(lazy_recursive_mutex.Pointer()); 68 LAZY_RECURSIVE_MUTEX_INITIALIZER;
69 {
70 v8::base::LockGuard<v8::base::RecursiveMutex> lock_guard(
71 lazy_recursive_mutex.Pointer());
69 } 72 }
70 { LockGuard<RecursiveMutex> lock_guard1(lazy_recursive_mutex.Pointer()); 73 {
71 LockGuard<RecursiveMutex> lock_guard2(lazy_recursive_mutex.Pointer()); 74 v8::base::LockGuard<v8::base::RecursiveMutex> lock_guard1(
75 lazy_recursive_mutex.Pointer());
76 v8::base::LockGuard<v8::base::RecursiveMutex> lock_guard2(
77 lazy_recursive_mutex.Pointer());
72 } 78 }
73 } 79 }
74 80
75 81
76 TEST(MultipleMutexes) { 82 TEST(MultipleMutexes) {
77 Mutex mutex1; 83 v8::base::Mutex mutex1;
78 Mutex mutex2; 84 v8::base::Mutex mutex2;
79 Mutex mutex3; 85 v8::base::Mutex mutex3;
80 // Order 1 86 // Order 1
81 mutex1.Lock(); 87 mutex1.Lock();
82 mutex2.Lock(); 88 mutex2.Lock();
83 mutex3.Lock(); 89 mutex3.Lock();
84 mutex1.Unlock(); 90 mutex1.Unlock();
85 mutex2.Unlock(); 91 mutex2.Unlock();
86 mutex3.Unlock(); 92 mutex3.Unlock();
87 // Order 2 93 // Order 2
88 mutex1.Lock(); 94 mutex1.Lock();
89 mutex2.Lock(); 95 mutex2.Lock();
90 mutex3.Lock(); 96 mutex3.Lock();
91 mutex3.Unlock(); 97 mutex3.Unlock();
92 mutex2.Unlock(); 98 mutex2.Unlock();
93 mutex1.Unlock(); 99 mutex1.Unlock();
94 } 100 }
95 101
96 102
97 TEST(MultipleRecursiveMutexes) { 103 TEST(MultipleRecursiveMutexes) {
98 RecursiveMutex recursive_mutex1; 104 v8::base::RecursiveMutex recursive_mutex1;
99 RecursiveMutex recursive_mutex2; 105 v8::base::RecursiveMutex recursive_mutex2;
100 // Order 1 106 // Order 1
101 recursive_mutex1.Lock(); 107 recursive_mutex1.Lock();
102 recursive_mutex2.Lock(); 108 recursive_mutex2.Lock();
103 CHECK(recursive_mutex1.TryLock()); 109 CHECK(recursive_mutex1.TryLock());
104 CHECK(recursive_mutex2.TryLock()); 110 CHECK(recursive_mutex2.TryLock());
105 recursive_mutex1.Unlock(); 111 recursive_mutex1.Unlock();
106 recursive_mutex1.Unlock(); 112 recursive_mutex1.Unlock();
107 recursive_mutex2.Unlock(); 113 recursive_mutex2.Unlock();
108 recursive_mutex2.Unlock(); 114 recursive_mutex2.Unlock();
109 // Order 2 115 // Order 2
110 recursive_mutex1.Lock(); 116 recursive_mutex1.Lock();
111 CHECK(recursive_mutex1.TryLock()); 117 CHECK(recursive_mutex1.TryLock());
112 recursive_mutex2.Lock(); 118 recursive_mutex2.Lock();
113 CHECK(recursive_mutex2.TryLock()); 119 CHECK(recursive_mutex2.TryLock());
114 recursive_mutex2.Unlock(); 120 recursive_mutex2.Unlock();
115 recursive_mutex1.Unlock(); 121 recursive_mutex1.Unlock();
116 recursive_mutex2.Unlock(); 122 recursive_mutex2.Unlock();
117 recursive_mutex1.Unlock(); 123 recursive_mutex1.Unlock();
118 } 124 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698