Skip to content

Commit c359b59

Browse files
rmacnak-googlecommit-bot@chromium.org
authored andcommitted
[vm, service] Fix and enable more services tests.
Change-Id: I3e96b3fdcb30def43c7b87183a925bd1668fb6a2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133087 Reviewed-by: Ben Konyi <bkonyi@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
1 parent 3962edc commit c359b59

File tree

6 files changed

+53
-56
lines changed

6 files changed

+53
-56
lines changed

runtime/observatory/lib/src/service/object.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1905,6 +1905,16 @@ class Isolate extends ServiceObjectOwner implements M.Isolate {
19051905
});
19061906
}
19071907

1908+
Future<ServiceObject> invoke(ServiceObject target, String selector,
1909+
[List<ServiceObject> arguments = const <ServiceObject>[]]) {
1910+
Map params = {
1911+
'targetId': target.id,
1912+
'selector': selector,
1913+
'argumentIds': arguments.map((arg) => arg.id).toList(),
1914+
};
1915+
return invokeRpc('invoke', params);
1916+
}
1917+
19081918
Future<ServiceObject> eval(ServiceObject target, String expression,
19091919
{Map<String, ServiceObject> scope, bool disableBreakpoints: false}) {
19101920
Map params = {

runtime/observatory/tests/service/developer_extension_test.dart

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,53 +11,43 @@ import 'package:unittest/unittest.dart';
1111
import 'service_test_common.dart';
1212
import 'test_helper.dart';
1313

14-
Future<ServiceExtensionResponse> Handler(String method,
15-
Map paremeters) {
14+
Future<ServiceExtensionResponse> Handler(String method, Map paremeters) {
1615
print('Invoked extension: $method');
1716
switch (method) {
1817
case 'ext..delay':
19-
Completer c = new Completer();
18+
Completer c = new Completer<ServiceExtensionResponse>();
2019
new Timer(new Duration(seconds: 1), () {
2120
c.complete(new ServiceExtensionResponse.result(jsonEncode({
22-
'type': '_delayedType',
23-
'method': method,
24-
'parameters': paremeters,
25-
})));
21+
'type': '_delayedType',
22+
'method': method,
23+
'parameters': paremeters,
24+
})));
2625
});
2726
return c.future;
2827
case 'ext..error':
29-
return new Future.value(
30-
new ServiceExtensionResponse.error(
31-
ServiceExtensionResponse.extensionErrorMin,
32-
'My error detail.'));
28+
return new Future<ServiceExtensionResponse>.value(
29+
new ServiceExtensionResponse.error(
30+
ServiceExtensionResponse.extensionErrorMin, 'My error detail.'));
3331
case 'ext..exception':
3432
throw "I always throw!";
3533
case 'ext..success':
36-
return new Future.value(
34+
return new Future<ServiceExtensionResponse>.value(
3735
new ServiceExtensionResponse.result(jsonEncode({
38-
'type': '_extensionType',
39-
'method': method,
40-
'parameters': paremeters,
41-
})));
36+
'type': '_extensionType',
37+
'method': method,
38+
'parameters': paremeters,
39+
})));
4240
case 'ext..null':
4341
return null;
4442
case 'ext..nullFuture':
45-
return new Future.value(null);
43+
return new Future<ServiceExtensionResponse>.value(null);
4644
}
4745
}
4846

49-
Future<ServiceExtensionResponse> LanguageErrorHandler(String method,
50-
Map paremeters) {
51-
// The following is an intentional syntax error.
52-
klajsdlkjfad
53-
}
54-
5547
void test() {
5648
registerExtension('ext..delay', Handler);
5749
debugger();
58-
postEvent('ALPHA', {
59-
'cat': 'dog'
60-
});
50+
postEvent('ALPHA', {'cat': 'dog'});
6151
debugger();
6252
registerExtension('ext..error', Handler);
6353
registerExtension('ext..exception', Handler);
@@ -71,15 +61,20 @@ void test() {
7161
exceptionThrown = true;
7262
}
7363
expect(exceptionThrown, isTrue);
74-
registerExtension('ext..languageError', LanguageErrorHandler);
7564
}
7665

7766
var tests = <IsolateTest>[
7867
hasStoppedAtBreakpoint,
7968
(Isolate isolate) async {
8069
await isolate.load();
81-
expect(isolate.extensionRPCs.length, 1);
82-
expect(isolate.extensionRPCs[0], equals('ext..delay'));
70+
// Note: extensions other than those is this test might already be
71+
// registered by core libraries.
72+
expect(isolate.extensionRPCs, contains('ext..delay'));
73+
expect(isolate.extensionRPCs, isNot(contains('ext..error')));
74+
expect(isolate.extensionRPCs, isNot(contains('ext..exception')));
75+
expect(isolate.extensionRPCs, isNot(contains('ext..null')));
76+
expect(isolate.extensionRPCs, isNot(contains('ext..nullFuture')));
77+
expect(isolate.extensionRPCs, isNot(contains('ext..success')));
8378
},
8479
resumeIsolateAndAwaitEvent(Isolate.kExtensionStream, (ServiceEvent event) {
8580
expect(event.kind, equals(ServiceEvent.kExtension));
@@ -127,27 +122,19 @@ var tests = <IsolateTest>[
127122
await isolate.invokeRpcNoUpgrade('ext..nullFuture', {});
128123
} on ServerRpcException catch (e, st) {
129124
expect(e.code, equals(ServiceExtensionResponse.extensionError));
130-
expect(e.message, equals('Extension handler must complete to a '
131-
'ServiceExtensionResponse'));
125+
expect(
126+
e.message,
127+
equals('Extension handler must complete to a '
128+
'ServiceExtensionResponse'));
132129
}
133130

134-
result = await isolate.invokeRpcNoUpgrade('ext..success',
135-
{'apple': 'banana'});
131+
result =
132+
await isolate.invokeRpcNoUpgrade('ext..success', {'apple': 'banana'});
136133
expect(result['type'], equals('_extensionType'));
137134
expect(result['method'], equals('ext..success'));
138135
expect(result['parameters']['isolateId'], isNotNull);
139136
expect(result['parameters']['apple'], equals('banana'));
140-
141-
142-
try {
143-
result = await isolate.invokeRpcNoUpgrade('ext..languageError', {});
144-
} on ServerRpcException catch (e, st) {
145-
expect(e.code, equals(ServiceExtensionResponse.extensionError));
146-
expect(e.message, stringContainsInOrder([
147-
'developer_extension_test.dart',
148-
'semicolon expected']));
149-
}
150137
},
151138
];
152139

153-
main(args) async => runIsolateTests(args, tests, testeeConcurrent:test);
140+
main(args) async => runIsolateTests(args, tests, testeeConcurrent: test);

runtime/observatory/tests/service/developer_service_get_isolate_id_test.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ Future testeeMain() async {
3131
dev.debugger();
3232
}
3333

34+
@pragma("vm:entry-point")
35+
getSelfId() => selfId;
36+
37+
@pragma("vm:entry-point")
38+
getChildId() => childId;
39+
3440
// tester state:
3541
Service.Isolate initialIsolate;
3642
Service.Isolate localChildIsolate;
@@ -65,7 +71,7 @@ var tests = <VMTest>[
6571

6672
// Grab self id.
6773
Service.Instance localSelfId =
68-
await initialIsolate.eval(rootLbirary, 'selfId');
74+
await initialIsolate.invoke(rootLbirary, 'getSelfId');
6975

7076
// Check that the id reported from dart:developer matches the id reported
7177
// from the service protocol.
@@ -74,7 +80,7 @@ var tests = <VMTest>[
7480

7581
// Grab the child isolate's id.
7682
Service.Instance localChildId =
77-
await initialIsolate.eval(rootLbirary, 'childId');
83+
await initialIsolate.invoke(rootLbirary, 'getChildId');
7884

7985
// Check that the id reported from dart:developer matches the id reported
8086
// from the service protocol.

runtime/observatory/tests/service/kill_running_test.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ testMain() async {
1414
}
1515

1616
var tests = <IsolateTest>[
17-
// Stopped at 'debugger' statement.
18-
isolateIsRunning,
1917
// Kill the app
2018
(Isolate isolate) async {
2119
Map<String, dynamic> params = <String, dynamic>{};

runtime/observatory/tests/service/service_kernel.status

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,31 @@
33
# BSD-style license that can be found in the LICENSE file.
44

55
[ $compiler == app_jitk ]
6+
add_breakpoint_rpc_kernel_test: SkipByDesign # No incremental compiler available.
67
async_generator_breakpoint_test: SkipByDesign # No incremental compiler available.
78
bad_reload_test: RuntimeError
89
break_on_activation_test: SkipByDesign # No incremental compiler available.
910
complex_reload_test: RuntimeError
1011
debugger_inspect_test: SkipByDesign # No incremental compiler available.
1112
debugger_location_second_test: RuntimeError
12-
developer_service_get_isolate_id_test: SkipByDesign # No incremental compiler available.
1313
eval_internal_class_test: SkipByDesign # No incremental compiler available.
1414
eval_regression_flutter20255_test: SkipByDesign # No incremental compiler available.
1515
eval_test: SkipByDesign # No incremental compiler available.
1616
evaluate_activation_in_method_class_test: RuntimeError # Issue 35505
1717
evaluate_activation_test: SkipByDesign # No incremental compiler available.
1818
evaluate_async_closure_test: SkipByDesign # No incremental compiler available.
1919
evaluate_class_type_parameters_test: SkipByDesign # No incremental compiler available.
20+
evaluate_function_type_parameters_test: SkipByDesign # No incremental compiler available.
2021
evaluate_in_async_activation_test: SkipByDesign # No incremental compiler available.
2122
evaluate_in_async_star_activation_test: SkipByDesign # No incremental compiler available.
2223
evaluate_in_frame_rpc_test: SkipByDesign # No incremental compiler available.
2324
evaluate_in_frame_with_scope_test: SkipByDesign # No incremental compiler available.
2425
evaluate_in_sync_star_activation_test: SkipByDesign # No incremental compiler available.
26+
evaluate_with_escaping_closure_test: SkipByDesign # No incremental compiler available.
2527
evaluate_with_scope_test: SkipByDesign # No incremental compiler available.
2628
pause_on_exceptions_test: SkipByDesign # No incremental compiler available.
27-
regress_34841_test: RuntimeError # http://dartbug.com/34841
2829
rewind_optimized_out_test: SkipByDesign # No incremental compiler available.
2930
rewind_test: SkipByDesign # No incremental compiler available.
30-
simple_reload_test: RuntimeError, Timeout # Issue 35506
3131

3232
[ $compiler == dartkp ]
3333
add_breakpoint_rpc_kernel_test: RuntimeError
@@ -76,7 +76,7 @@ debugger_location_test: Skip, Timeout
7676
debugging_inlined_finally_test: Skip, Timeout
7777
debugging_test: RuntimeError
7878
dev_fs_spawn_test: RuntimeError
79-
developer_extension_test: CompileTimeError
79+
developer_extension_test: Skip, Timeout
8080
developer_service_get_isolate_id_test: Skip, Timeout
8181
eval_internal_class_test: RuntimeError
8282
eval_regression_flutter20255_test: Skip, Timeout
@@ -108,7 +108,6 @@ issue_27238_test: Skip, Timeout
108108
issue_27287_test: Skip, Timeout
109109
issue_30555_test: RuntimeError
110110
kill_paused_test: Skip, Timeout
111-
kill_running_test: RuntimeError
112111
library_dependency_test: CompileTimeError
113112
local_variable_declaration_test: Skip, Timeout
114113
logging_test: Skip, Timeout
@@ -179,7 +178,6 @@ weak_properties_test: CompileTimeError
179178
yield_positions_with_finally_test: RuntimeError
180179

181180
[ $fasta ]
182-
developer_extension_test: CompileTimeError
183181
get_isolate_after_language_error_test: CompileTimeError
184182

185183
[ $arch == arm64 && $compiler == dartk ]
@@ -278,7 +276,6 @@ break_on_activation_test: RuntimeError # Issue #34736
278276
breakpoint_in_package_parts_class_file_uri_test: RuntimeError # Issue #34736
279277
complex_reload_test: Skip # Times out on sim architectures, also RuntimeError.
280278
debugger_inspect_test: RuntimeError, Timeout # Issue #34736
281-
developer_service_get_isolate_id_test: RuntimeError # Issue #34736
282279
eval_internal_class_test: RuntimeError # Issue #34736
283280
eval_regression_flutter20255_test: SkipByDesign # No incremental compiler available.
284281
eval_test: RuntimeError # Issue #34736

runtime/tests/vm/vm.status

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ cc/IsolateReload_PendingStaticCall_DefinedToNSM: Fail # Issue 32981
1111
cc/IsolateReload_PendingStaticCall_NSMToDefined: Fail, Crash # Issue 32981. Fails on non-Windows, crashes on Windows (because of test.py special handline)
1212
cc/IsolateReload_PendingUnqualifiedCall_InstanceToStatic: Fail # Issue 32981
1313
cc/IsolateReload_PendingUnqualifiedCall_StaticToInstance: Fail # Issue 32981
14-
cc/Profiler_StringInterpolation: Fail # Issue 37208
1514
dart/data_uri_import_test/none: SkipByDesign
1615
dart/emit_aot_size_info_flag_test: Pass, Slow # Spawns several subprocesses
1716
dart/slow_path_shared_stub_test: Pass, Slow # Uses --shared-slow-path-triggers-gc flag.

0 commit comments

Comments
 (0)