OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 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/locked-queue-inl.h" |
| 6 #include "testing/gtest/include/gtest/gtest.h" |
| 7 |
| 8 namespace { |
| 9 |
| 10 typedef int Record; |
| 11 |
| 12 } // namespace |
| 13 |
| 14 namespace v8 { |
| 15 namespace internal { |
| 16 |
| 17 TEST(LockedQueue, ConstructorEmpty) { |
| 18 LockedQueue<Record> queue; |
| 19 EXPECT_TRUE(queue.IsEmpty()); |
| 20 } |
| 21 |
| 22 |
| 23 TEST(LockedQueue, SingleRecordEnqueueDequeue) { |
| 24 LockedQueue<Record> queue; |
| 25 EXPECT_TRUE(queue.IsEmpty()); |
| 26 queue.Enqueue(1); |
| 27 EXPECT_FALSE(queue.IsEmpty()); |
| 28 Record a = -1; |
| 29 bool success = queue.Dequeue(&a); |
| 30 EXPECT_TRUE(success); |
| 31 EXPECT_EQ(a, 1); |
| 32 EXPECT_TRUE(queue.IsEmpty()); |
| 33 } |
| 34 |
| 35 |
| 36 TEST(LockedQueue, Peek) { |
| 37 LockedQueue<Record> queue; |
| 38 EXPECT_TRUE(queue.IsEmpty()); |
| 39 queue.Enqueue(1); |
| 40 EXPECT_FALSE(queue.IsEmpty()); |
| 41 Record a = -1; |
| 42 bool success = queue.Peek(&a); |
| 43 EXPECT_TRUE(success); |
| 44 EXPECT_EQ(a, 1); |
| 45 EXPECT_FALSE(queue.IsEmpty()); |
| 46 success = queue.Dequeue(&a); |
| 47 EXPECT_TRUE(success); |
| 48 EXPECT_EQ(a, 1); |
| 49 EXPECT_TRUE(queue.IsEmpty()); |
| 50 } |
| 51 |
| 52 |
| 53 TEST(LockedQueue, PeekOnEmpty) { |
| 54 LockedQueue<Record> queue; |
| 55 EXPECT_TRUE(queue.IsEmpty()); |
| 56 Record a = -1; |
| 57 bool success = queue.Peek(&a); |
| 58 EXPECT_FALSE(success); |
| 59 } |
| 60 |
| 61 |
| 62 TEST(LockedQueue, MultipleRecords) { |
| 63 LockedQueue<Record> queue; |
| 64 EXPECT_TRUE(queue.IsEmpty()); |
| 65 queue.Enqueue(1); |
| 66 EXPECT_FALSE(queue.IsEmpty()); |
| 67 for (int i = 2; i <= 5; ++i) { |
| 68 queue.Enqueue(i); |
| 69 EXPECT_FALSE(queue.IsEmpty()); |
| 70 } |
| 71 Record rec = 0; |
| 72 for (int i = 1; i <= 4; ++i) { |
| 73 EXPECT_FALSE(queue.IsEmpty()); |
| 74 queue.Dequeue(&rec); |
| 75 EXPECT_EQ(i, rec); |
| 76 } |
| 77 for (int i = 6; i <= 12; ++i) { |
| 78 queue.Enqueue(i); |
| 79 EXPECT_FALSE(queue.IsEmpty()); |
| 80 } |
| 81 for (int i = 5; i <= 12; ++i) { |
| 82 EXPECT_FALSE(queue.IsEmpty()); |
| 83 queue.Dequeue(&rec); |
| 84 EXPECT_EQ(i, rec); |
| 85 } |
| 86 EXPECT_TRUE(queue.IsEmpty()); |
| 87 } |
| 88 |
| 89 } // namespace internal |
| 90 } // namespace v8 |
OLD | NEW |