v8  3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test-unbound-queue.cc
Go to the documentation of this file.
1 // Copyright 2010 the V8 project authors. All rights reserved.
2 //
3 // Tests of the unbound queue.
4 
5 #include "v8.h"
6 #include "unbound-queue-inl.h"
7 #include "cctest.h"
8 
9 using i::UnboundQueue;
10 
11 
12 TEST(SingleRecord) {
13  typedef int Record;
14  UnboundQueue<Record> cq;
15  CHECK(cq.IsEmpty());
16  cq.Enqueue(1);
17  CHECK(!cq.IsEmpty());
18  Record rec = 0;
19  cq.Dequeue(&rec);
20  CHECK_EQ(1, rec);
21  CHECK(cq.IsEmpty());
22 }
23 
24 
25 TEST(MultipleRecords) {
26  typedef int Record;
27  UnboundQueue<Record> cq;
28  CHECK(cq.IsEmpty());
29  cq.Enqueue(1);
30  CHECK(!cq.IsEmpty());
31  for (int i = 2; i <= 5; ++i) {
32  cq.Enqueue(i);
33  CHECK(!cq.IsEmpty());
34  }
35  Record rec = 0;
36  for (int i = 1; i <= 4; ++i) {
37  CHECK(!cq.IsEmpty());
38  cq.Dequeue(&rec);
39  CHECK_EQ(i, rec);
40  }
41  for (int i = 6; i <= 12; ++i) {
42  cq.Enqueue(i);
43  CHECK(!cq.IsEmpty());
44  }
45  for (int i = 5; i <= 12; ++i) {
46  CHECK(!cq.IsEmpty());
47  cq.Dequeue(&rec);
48  CHECK_EQ(i, rec);
49  }
50  CHECK(cq.IsEmpty());
51 }
52 
#define CHECK_EQ(expected, value)
Definition: checks.h:219
TEST(SingleRecord)
#define CHECK(condition)
Definition: checks.h:56