OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
| 5 #include "vm/message.h" |
5 #include "platform/assert.h" | 6 #include "platform/assert.h" |
6 #include "vm/message.h" | |
7 #include "vm/unit_test.h" | 7 #include "vm/unit_test.h" |
8 | 8 |
9 namespace dart { | 9 namespace dart { |
10 | 10 |
11 | |
12 static uint8_t* AllocMsg(const char* str) { | 11 static uint8_t* AllocMsg(const char* str) { |
13 return reinterpret_cast<uint8_t*>(strdup(str)); | 12 return reinterpret_cast<uint8_t*>(strdup(str)); |
14 } | 13 } |
15 | 14 |
16 | |
17 TEST_CASE(MessageQueue_BasicOperations) { | 15 TEST_CASE(MessageQueue_BasicOperations) { |
18 MessageQueue queue; | 16 MessageQueue queue; |
19 EXPECT(queue.IsEmpty()); | 17 EXPECT(queue.IsEmpty()); |
20 MessageQueue::Iterator it(&queue); | 18 MessageQueue::Iterator it(&queue); |
21 // Queue is empty. | 19 // Queue is empty. |
22 EXPECT(!it.HasNext()); | 20 EXPECT(!it.HasNext()); |
23 | 21 |
24 Dart_Port port = 1; | 22 Dart_Port port = 1; |
25 | 23 |
26 const char* str1 = "msg1"; | 24 const char* str1 = "msg1"; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 EXPECT(queue.IsEmpty()); | 115 EXPECT(queue.IsEmpty()); |
118 | 116 |
119 delete msg1; | 117 delete msg1; |
120 delete msg2; | 118 delete msg2; |
121 delete msg3; | 119 delete msg3; |
122 delete msg4; | 120 delete msg4; |
123 delete msg5; | 121 delete msg5; |
124 delete msg6; | 122 delete msg6; |
125 } | 123 } |
126 | 124 |
127 | |
128 TEST_CASE(MessageQueue_Clear) { | 125 TEST_CASE(MessageQueue_Clear) { |
129 MessageQueue queue; | 126 MessageQueue queue; |
130 Dart_Port port1 = 1; | 127 Dart_Port port1 = 1; |
131 Dart_Port port2 = 2; | 128 Dart_Port port2 = 2; |
132 | 129 |
133 const char* str1 = "msg1"; | 130 const char* str1 = "msg1"; |
134 const char* str2 = "msg2"; | 131 const char* str2 = "msg2"; |
135 | 132 |
136 // Add two messages. | 133 // Add two messages. |
137 Message* msg1 = new Message(port1, AllocMsg(str1), strlen(str1) + 1, | 134 Message* msg1 = new Message(port1, AllocMsg(str1), strlen(str1) + 1, |
138 Message::kNormalPriority); | 135 Message::kNormalPriority); |
139 queue.Enqueue(msg1, false); | 136 queue.Enqueue(msg1, false); |
140 Message* msg2 = new Message(port2, AllocMsg(str2), strlen(str2) + 1, | 137 Message* msg2 = new Message(port2, AllocMsg(str2), strlen(str2) + 1, |
141 Message::kNormalPriority); | 138 Message::kNormalPriority); |
142 queue.Enqueue(msg2, false); | 139 queue.Enqueue(msg2, false); |
143 | 140 |
144 EXPECT(!queue.IsEmpty()); | 141 EXPECT(!queue.IsEmpty()); |
145 queue.Clear(); | 142 queue.Clear(); |
146 EXPECT(queue.IsEmpty()); | 143 EXPECT(queue.IsEmpty()); |
147 | 144 |
148 // msg1 and msg2 already delete by FlushAll. | 145 // msg1 and msg2 already delete by FlushAll. |
149 } | 146 } |
150 | 147 |
151 } // namespace dart | 148 } // namespace dart |
OLD | NEW |