OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library isolate_stacktrace_command_test; | 5 library isolate_stacktrace_command_test; |
6 | 6 |
7 import 'test_helper.dart'; | 7 import 'test_helper.dart'; |
8 import 'package:expect/expect.dart'; | 8 import 'package:expect/expect.dart'; |
9 | 9 |
10 class StacktraceTest extends VmServiceRequestHelper { | 10 class StacktraceTest extends VmServiceRequestHelper { |
11 StacktraceTest(port, id) : | 11 StacktraceTest(port, id) : |
12 super('http://127.0.0.1:$port/isolates/$id/stacktrace'); | 12 super('http://127.0.0.1:$port/$id/stacktrace'); |
13 | 13 |
14 onRequestCompleted(Map reply) { | 14 onRequestCompleted(Map reply) { |
15 Expect.equals('StackTrace', reply['type'], 'Not a StackTrace message.'); | 15 Expect.equals('StackTrace', reply['type'], 'Not a StackTrace message.'); |
16 Expect.isTrue(4 <= reply['members'].length, 'Stacktrace is wrong length.'); | 16 Expect.isTrue(4 <= reply['members'].length, 'Stacktrace is wrong length.'); |
17 // The number of frames involved in isolate message dispatch is an | 17 // The number of frames involved in isolate message dispatch is an |
18 // implementation detail. Only check that we got all the frames for user | 18 // implementation detail. Only check that we got all the frames for user |
19 // code. | 19 // code. |
20 Expect.equals('a', reply['members'][0]['name']); | 20 Expect.equals('a', reply['members'][0]['name']); |
21 Expect.equals('b', reply['members'][1]['name']); | 21 Expect.equals('b', reply['members'][1]['name']); |
22 Expect.equals('c', reply['members'][2]['name']); | 22 Expect.equals('c', reply['members'][2]['name']); |
23 Expect.equals('myIsolateName', reply['members'][3]['name']); | 23 Expect.equals('myIsolateName', reply['members'][3]['name']); |
24 } | 24 } |
25 } | 25 } |
26 | 26 |
27 class IsolateListTest extends VmServiceRequestHelper { | 27 class IsolateListTest extends VmServiceRequestHelper { |
28 IsolateListTest(port) : super('http://127.0.0.1:$port/isolates'); | 28 IsolateListTest(port) : super('http://127.0.0.1:$port/isolates'); |
29 | 29 |
30 int _isolateId; | 30 String _isolateId; |
31 onRequestCompleted(Map reply) { | 31 onRequestCompleted(Map reply) { |
32 IsolateListTester tester = new IsolateListTester(reply); | 32 IsolateListTester tester = new IsolateListTester(reply); |
33 tester.checkIsolateCount(2); | 33 tester.checkIsolateCount(2); |
34 _isolateId = tester.checkIsolateNameContains('myIsolateName'); | 34 _isolateId = tester.checkIsolateNameContains('myIsolateName'); |
35 } | 35 } |
36 } | 36 } |
37 | 37 |
38 | 38 |
39 main() { | 39 main() { |
40 var process = new TestLauncher('isolate_stacktrace_command_script.dart'); | 40 var process = new TestLauncher('isolate_stacktrace_command_script.dart'); |
41 process.launch().then((port) { | 41 process.launch().then((port) { |
42 var test = new IsolateListTest(port); | 42 var test = new IsolateListTest(port); |
43 test.makeRequest().then((_) { | 43 test.makeRequest().then((_) { |
44 var stacktraceTest = new StacktraceTest(port, test._isolateId); | 44 var stacktraceTest = new StacktraceTest(port, test._isolateId); |
45 stacktraceTest.makeRequest().then((_) { | 45 stacktraceTest.makeRequest().then((_) { |
46 process.requestExit(); | 46 process.requestExit(); |
47 }); | 47 }); |
48 }); | 48 }); |
49 }); | 49 }); |
50 } | 50 } |
OLD | NEW |