Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: runtime/observatory/tests/service/developer_extension_test.dart

Issue 1527793004: Provide list of service protocol extensions in isolate and emit an event when one is registered (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/observatory/lib/src/service/object.dart ('k') | runtime/vm/isolate.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 // VMOptions=--error_on_bad_type --error_on_bad_override 4 // VMOptions=--error_on_bad_type --error_on_bad_override
5 5
6 import 'dart:async'; 6 import 'dart:async';
7 import 'dart:convert'; 7 import 'dart:convert';
8 import 'dart:developer'; 8 import 'dart:developer';
9 import 'package:observatory/service_io.dart'; 9 import 'package:observatory/service_io.dart';
10 import 'package:observatory/cpu_profile.dart'; 10 import 'package:observatory/cpu_profile.dart';
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 } 48 }
49 49
50 Future<ServiceExtensionResponse> LanguageErrorHandler(String method, 50 Future<ServiceExtensionResponse> LanguageErrorHandler(String method,
51 Map paremeters) { 51 Map paremeters) {
52 // The following is an intentional syntax error. 52 // The following is an intentional syntax error.
53 klajsdlkjfad 53 klajsdlkjfad
54 } 54 }
55 55
56 void test() { 56 void test() {
57 registerExtension('__delay', Handler); 57 registerExtension('__delay', Handler);
58 debugger();
58 registerExtension('__error', Handler); 59 registerExtension('__error', Handler);
59 registerExtension('__exception', Handler); 60 registerExtension('__exception', Handler);
60 registerExtension('__null', Handler); 61 registerExtension('__null', Handler);
61 registerExtension('__nullFuture', Handler); 62 registerExtension('__nullFuture', Handler);
62 registerExtension('__success', Handler); 63 registerExtension('__success', Handler);
63 bool exceptionThrown = false; 64 bool exceptionThrown = false;
64 try { 65 try {
65 registerExtension('__delay', Handler); 66 registerExtension('__delay', Handler);
66 } catch (e) { 67 } catch (e) {
67 exceptionThrown = true; 68 exceptionThrown = true;
68 } 69 }
69 expect(exceptionThrown, isTrue); 70 expect(exceptionThrown, isTrue);
70 registerExtension('__languageError', LanguageErrorHandler); 71 registerExtension('__languageError', LanguageErrorHandler);
71 } 72 }
72 73
73 var tests = [ 74 var tests = [
75 hasStoppedAtBreakpoint,
76 (Isolate isolate) async {
77 await isolate.load();
78 expect(isolate.extensionRPCs.length, 1);
79 expect(isolate.extensionRPCs[0], equals('__delay'));
80 },
81 resumeIsolateAndAwaitEvent(VM.kIsolateStream, (ServiceEvent event) {
82 // Check that we received an event when '__error' was registered.
83 expect(event.kind, equals(ServiceEvent.kServiceExtensionAdded));
84 expect(event.extensionRPC, equals('__error'));
85 }),
74 // Initial. 86 // Initial.
75 (Isolate isolate) async { 87 (Isolate isolate) async {
76 var result; 88 var result;
77 89
78 result = await isolate.invokeRpcNoUpgrade('__delay', {}); 90 result = await isolate.invokeRpcNoUpgrade('__delay', {});
79 expect(result['type'], equals('_delayedType')); 91 expect(result['type'], equals('_delayedType'));
80 expect(result['method'], equals('__delay')); 92 expect(result['method'], equals('__delay'));
81 expect(result['parameters']['isolateId'], isNotNull); 93 expect(result['parameters']['isolateId'], isNotNull);
82 94
83 try { 95 try {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 expect(e.code, equals(ServiceExtensionResponse.kExtensionError)); 135 expect(e.code, equals(ServiceExtensionResponse.kExtensionError));
124 expect(e.message, stringContainsInOrder([ 136 expect(e.message, stringContainsInOrder([
125 'Error in extension `__languageError`:', 137 'Error in extension `__languageError`:',
126 'developer_extension_test.dart', 138 'developer_extension_test.dart',
127 'semicolon expected'])); 139 'semicolon expected']));
128 } 140 }
129 141
130 }, 142 },
131 ]; 143 ];
132 144
133 main(args) async => runIsolateTests(args, tests, testeeBefore:test); 145 main(args) async => runIsolateTests(args, tests, testeeConcurrent:test);
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/service/object.dart ('k') | runtime/vm/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698