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 "include/dart_api.h" | 5 #include "include/dart_api.h" |
6 #include "platform/assert.h" | 6 #include "platform/assert.h" |
7 #include "vm/globals.h" | 7 #include "vm/globals.h" |
8 #include "vm/isolate.h" | 8 #include "vm/isolate.h" |
9 #include "vm/lockers.h" | 9 #include "vm/lockers.h" |
10 #include "vm/thread_barrier.h" | 10 #include "vm/thread_barrier.h" |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
239 | 239 |
240 // Restore, then clear interrupts. The world is as it was. | 240 // Restore, then clear interrupts. The world is as it was. |
241 interrupt_bits = thread->GetAndClearInterrupts(); | 241 interrupt_bits = thread->GetAndClearInterrupts(); |
242 EXPECT_EQ(kMessageInterrupt, interrupt_bits); | 242 EXPECT_EQ(kMessageInterrupt, interrupt_bits); |
243 EXPECT_EQ(IsolateTestHelper::GetStackLimit(thread), | 243 EXPECT_EQ(IsolateTestHelper::GetStackLimit(thread), |
244 IsolateTestHelper::GetSavedStackLimit(thread)); | 244 IsolateTestHelper::GetSavedStackLimit(thread)); |
245 EXPECT_EQ(kZero, IsolateTestHelper::GetDeferredInterruptsMask(thread)); | 245 EXPECT_EQ(kZero, IsolateTestHelper::GetDeferredInterruptsMask(thread)); |
246 EXPECT_EQ(kZero, IsolateTestHelper::GetDeferredInterrupts(thread)); | 246 EXPECT_EQ(kZero, IsolateTestHelper::GetDeferredInterrupts(thread)); |
247 } | 247 } |
248 | 248 |
249 | |
250 #ifndef RELEASE | |
Cutch
2016/12/06 19:11:14
this doesn't look right.
bkonyi
2016/12/08 18:04:14
Yes, you're right. I've switched to if defined(DEB
| |
251 UNIT_TEST_CASE(PrintIsolateInformationToJSON) { | |
252 Dart_Isolate isolate = Dart_CreateIsolate( | |
253 NULL, NULL, bin::isolate_snapshot_buffer, NULL, NULL, NULL); | |
254 EXPECT_EQ(isolate, Dart_CurrentIsolate()); | |
255 JSONStream stream; | |
256 { | |
257 JSONObject obj(&stream); | |
Cutch
2016/12/06 19:11:14
These should probably be rewritten as service test
bkonyi
2016/12/08 18:04:14
As discussed offline, will add a test once I start
| |
258 reinterpret_cast<Isolate*>(isolate)->PrintThreadsInfoToJSONObject(&obj); | |
259 } | |
260 | |
261 char isolate_buf[64]; | |
262 const char* json = stream.ToCString(); | |
263 snprintf(isolate_buf, sizeof(isolate_buf), | |
264 "\"isolate_address\":\"0x%" Px "\"", | |
265 reinterpret_cast<uword>(isolate)); | |
siva
2016/12/07 22:12:52
We use OS::SNPrint and not snprintf in order to ma
bkonyi
2016/12/08 18:04:14
Acknowledged.
| |
266 EXPECT_SUBSTRING(isolate_buf, json); | |
267 | |
siva
2016/12/07 22:12:52
How does this verify all the threads info that was
bkonyi
2016/12/08 18:04:14
Acknowledged. I'll be removing this test either wa
| |
268 Dart_ShutdownIsolate(); | |
269 } | |
270 | |
271 | |
272 UNIT_TEST_CASE(PrintAllIsolateInformationToJSON) { | |
273 Dart_Isolate isolate0 = TestCase::CreateTestIsolate(); | |
274 EXPECT_EQ(isolate0, Dart_CurrentIsolate()); | |
275 | |
276 char isolate0_buf[64]; | |
277 snprintf(isolate0_buf, sizeof(isolate0_buf), | |
278 "\"isolate_address\":\"0x%" Px "\"", | |
279 reinterpret_cast<uword>(isolate0)); | |
280 { | |
281 JSONStream stream; | |
282 Isolate::PrintAllIsolatesMemoryInfoToJSONLocked(&stream); | |
283 const char* json = stream.ToCString(); | |
284 EXPECT_SUBSTRING(isolate0_buf, json); | |
285 } | |
286 | |
287 Dart_ExitIsolate(); | |
288 // Create a second isolate to ensure info for all isolates is returned. | |
289 Dart_Isolate isolate1 = TestCase::CreateTestIsolate(); | |
290 EXPECT_EQ(isolate1, Dart_CurrentIsolate()); | |
291 | |
292 char isolate1_buf[64]; | |
293 snprintf(isolate1_buf, sizeof(isolate1_buf), | |
294 "\"isolate_address\":\"0x%" Px "\"", | |
295 reinterpret_cast<uword>(isolate1)); | |
296 { | |
297 JSONStream stream; | |
298 Isolate::PrintAllIsolatesMemoryInfoToJSONLocked(&stream); | |
299 const char* json = stream.ToCString(); | |
300 EXPECT_SUBSTRING(isolate0_buf, json); | |
301 EXPECT_SUBSTRING(isolate1_buf, json); | |
302 } | |
303 | |
304 Dart_ShutdownIsolate(); | |
305 Dart_EnterIsolate(isolate0); | |
306 Dart_ShutdownIsolate(); | |
307 } | |
308 #endif | |
309 | |
249 } // namespace dart | 310 } // namespace dart |
OLD | NEW |