v8
3.25.30(node0.11.13)
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-libplatform-worker-thread.cc
Go to the documentation of this file.
1
// Copyright 2013 the V8 project authors. All rights reserved.
2
// Redistribution and use in source and binary forms, with or without
3
// modification, are permitted provided that the following conditions are
4
// met:
5
//
6
// * Redistributions of source code must retain the above copyright
7
// notice, this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above
9
// copyright notice, this list of conditions and the following
10
// disclaimer in the documentation and/or other materials provided
11
// with the distribution.
12
// * Neither the name of Google Inc. nor the names of its
13
// contributors may be used to endorse or promote products derived
14
// from this software without specific prior written permission.
15
//
16
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
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.
27
28
#include "v8.h"
29
30
#include "
cctest.h
"
31
#include "
libplatform/task-queue.h
"
32
#include "
libplatform/worker-thread.h
"
33
#include "
test-libplatform.h
"
34
35
using namespace
v8::internal;
36
37
38
TEST
(
WorkerThread
) {
39
TaskQueue
queue;
40
TaskCounter
task_counter;
41
42
TestTask
* task1 =
new
TestTask
(&task_counter,
true
);
43
TestTask
* task2 =
new
TestTask
(&task_counter,
true
);
44
TestTask
* task3 =
new
TestTask
(&task_counter,
true
);
45
TestTask
* task4 =
new
TestTask
(&task_counter,
true
);
46
47
WorkerThread
* thread1 =
new
WorkerThread
(&queue);
48
WorkerThread
* thread2 =
new
WorkerThread
(&queue);
49
50
CHECK_EQ
(4, task_counter.
GetCount
());
51
52
queue.
Append
(task1);
53
queue.
Append
(task2);
54
queue.
Append
(task3);
55
queue.
Append
(task4);
56
57
// TaskQueue ASSERTs that it is empty in its destructor.
58
queue.
Terminate
();
59
60
delete
thread1;
61
delete
thread2;
62
63
CHECK_EQ
(0, task_counter.
GetCount
());
64
}
task-queue.h
CHECK_EQ
#define CHECK_EQ(expected, value)
Definition:
checks.h:252
v8::internal::TEST
Definition:
natives.h:39
TaskCounter
Definition:
test-libplatform.h:37
TestTask
Definition:
test-libplatform.h:65
cctest.h
TaskCounter::GetCount
int GetCount() const
Definition:
test-libplatform.h:42
v8::internal::WorkerThread
Definition:
worker-thread.h:43
worker-thread.h
v8::internal::TaskQueue::Append
void Append(Task *task)
Definition:
task-queue.cc:46
v8::internal::TaskQueue
Definition:
task-queue.h:44
test-libplatform.h
v8::internal::TaskQueue::Terminate
void Terminate()
Definition:
task-queue.cc:73
test
cctest
test-libplatform-worker-thread.cc
Generated on Sat Jun 7 2014 23:54:45 for v8 by
1.8.6