v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
Main Page
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
test-lock.cc
Go to the documentation of this file.
1
// Copyright 2006-2008 the V8 project authors. All rights reserved.
2
//
3
// Tests of the TokenLock class from lock.h
4
5
#include <stdlib.h>
6
7
#include "v8.h"
8
9
#include "
platform.h
"
10
#include "
cctest.h
"
11
12
13
using namespace
::v8::internal;
14
15
16
// Simple test of locking logic
17
TEST
(Simple) {
18
Mutex* mutex = OS::CreateMutex();
19
CHECK_EQ
(0, mutex->Lock());
// acquire the lock with the right token
20
CHECK_EQ
(0, mutex->Unlock());
// can unlock with the right token
21
delete
mutex;
22
}
23
24
25
TEST
(MultiLock) {
26
Mutex* mutex = OS::CreateMutex();
27
CHECK_EQ
(0, mutex->Lock());
28
CHECK_EQ
(0, mutex->Unlock());
29
delete
mutex;
30
}
31
32
33
TEST
(ShallowLock) {
34
Mutex* mutex = OS::CreateMutex();
35
CHECK_EQ
(0, mutex->Lock());
36
CHECK_EQ
(0, mutex->Unlock());
37
CHECK_EQ
(0, mutex->Lock());
38
CHECK_EQ
(0, mutex->Unlock());
39
delete
mutex;
40
}
41
42
43
TEST
(SemaphoreTimeout) {
44
bool
ok;
45
Semaphore* sem = OS::CreateSemaphore(0);
46
47
// Semaphore not signalled - timeout.
48
ok = sem->Wait(0);
49
CHECK
(!ok);
50
ok = sem->Wait(100);
51
CHECK
(!ok);
52
ok = sem->Wait(1000);
53
CHECK
(!ok);
54
55
// Semaphore signalled - no timeout.
56
sem->Signal();
57
ok = sem->Wait(0);
58
sem->Signal();
59
ok = sem->Wait(100);
60
sem->Signal();
61
ok = sem->Wait(1000);
62
CHECK
(ok);
63
delete
sem;
64
}
CHECK_EQ
#define CHECK_EQ(expected, value)
Definition:
checks.h:219
platform.h
CHECK
#define CHECK(condition)
Definition:
checks.h:56
cctest.h
TEST
TEST(Simple)
Definition:
test-lock.cc:17
test
cctest
test-lock.cc
Generated on Sat Jun 7 2014 23:30:13 for v8 by
1.8.6