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

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

Issue 3004563003: Refactor Isolate name format, storage and log (Closed)
Patch Set: Created 3 years, 3 months 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 'package:observatory/models.dart' as M; 8 import 'package:observatory/models.dart' as M;
9 import 'package:observatory/service_io.dart'; 9 import 'package:observatory/service_io.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } 112 }
113 113
114 // Spawn the script with no arguments or message and make sure 114 // Spawn the script with no arguments or message and make sure
115 // that we are notified. 115 // that we are notified.
116 Completer completer = new Completer(); 116 Completer completer = new Completer();
117 var sub; 117 var sub;
118 sub = await vm.listenEventStream(VM.kIsolateStream, (ServiceEvent event) { 118 sub = await vm.listenEventStream(VM.kIsolateStream, (ServiceEvent event) {
119 if (event.kind == ServiceEvent.kIsolateSpawn) { 119 if (event.kind == ServiceEvent.kIsolateSpawn) {
120 expect(event.spawnToken, equals('mySpawnToken0')); 120 expect(event.spawnToken, equals('mySpawnToken0'));
121 expect(event.isolate, isNotNull); 121 expect(event.isolate, isNotNull);
122 expect(event.isolate.name, equals('devfs_file0.dart\$main')); 122 expect(event.isolate.name, equals('devfs_file0.dart:main()'));
123 completer.complete(event.isolate); 123 completer.complete(event.isolate);
124 sub.cancel(); 124 sub.cancel();
125 } 125 }
126 }); 126 });
127 result = await vm.invokeRpcNoUpgrade('_spawnUri', { 127 result = await vm.invokeRpcNoUpgrade('_spawnUri', {
128 'token': 'mySpawnToken0', 128 'token': 'mySpawnToken0',
129 'uri': '${fsUri}${filePaths[0]}', 129 'uri': '${fsUri}${filePaths[0]}',
130 }); 130 });
131 expect(result['type'], equals('Success')); 131 expect(result['type'], equals('Success'));
132 var spawnedIsolate = await completer.future; 132 var spawnedIsolate = await completer.future;
133 133
134 // Wait for the spawned isolate to hit a breakpoint. 134 // Wait for the spawned isolate to hit a breakpoint.
135 await spawnedIsolate.load(); 135 await spawnedIsolate.load();
136 await hasStoppedAtBreakpoint(spawnedIsolate); 136 await hasStoppedAtBreakpoint(spawnedIsolate);
137 137
138 // Make sure that we are running code from the spawned isolate. 138 // Make sure that we are running code from the spawned isolate.
139 result = await spawnedIsolate.rootLibrary.evaluate('proofOfLife()'); 139 result = await spawnedIsolate.rootLibrary.evaluate('proofOfLife()');
140 expect(result.type, equals('Instance')); 140 expect(result.type, equals('Instance'));
141 expect(result.kind, equals(M.InstanceKind.string)); 141 expect(result.kind, equals(M.InstanceKind.string));
142 expect(result.valueAsString, equals('I live!')); 142 expect(result.valueAsString, equals('I live!'));
143 143
144 // Spawn the script with arguments. 144 // Spawn the script with arguments.
145 completer = new Completer(); 145 completer = new Completer();
146 sub = await vm.listenEventStream(VM.kIsolateStream, (ServiceEvent event) { 146 sub = await vm.listenEventStream(VM.kIsolateStream, (ServiceEvent event) {
147 if (event.kind == ServiceEvent.kIsolateSpawn) { 147 if (event.kind == ServiceEvent.kIsolateSpawn) {
148 expect(event.spawnToken, equals('mySpawnToken1')); 148 expect(event.spawnToken, equals('mySpawnToken1'));
149 expect(event.isolate, isNotNull); 149 expect(event.isolate, isNotNull);
150 expect(event.isolate.name, equals('devfs_file1.dart\$main')); 150 expect(event.isolate.name, equals('devfs_file1.dart:main()'));
151 completer.complete(event.isolate); 151 completer.complete(event.isolate);
152 sub.cancel(); 152 sub.cancel();
153 } 153 }
154 }); 154 });
155 result = await vm.invokeRpcNoUpgrade('_spawnUri', { 155 result = await vm.invokeRpcNoUpgrade('_spawnUri', {
156 'token': 'mySpawnToken1', 156 'token': 'mySpawnToken1',
157 'uri': '${fsUri}${filePaths[1]}', 157 'uri': '${fsUri}${filePaths[1]}',
158 'args': ['one', 'two', 'three'] 158 'args': ['one', 'two', 'three']
159 }); 159 });
160 expect(result['type'], equals('Success')); 160 expect(result['type'], equals('Success'));
161 spawnedIsolate = await completer.future; 161 spawnedIsolate = await completer.future;
162 162
163 // Wait for the spawned isolate to hit a breakpoint. 163 // Wait for the spawned isolate to hit a breakpoint.
164 await spawnedIsolate.load(); 164 await spawnedIsolate.load();
165 await hasStoppedAtBreakpoint(spawnedIsolate); 165 await hasStoppedAtBreakpoint(spawnedIsolate);
166 166
167 // Make sure that we are running code from the spawned isolate. 167 // Make sure that we are running code from the spawned isolate.
168 result = await spawnedIsolate.rootLibrary.evaluate('proofOfLife()'); 168 result = await spawnedIsolate.rootLibrary.evaluate('proofOfLife()');
169 expect(result.type, equals('Instance')); 169 expect(result.type, equals('Instance'));
170 expect(result.kind, equals(M.InstanceKind.string)); 170 expect(result.kind, equals(M.InstanceKind.string));
171 expect(result.valueAsString, equals('I live, [one, two, three]!')); 171 expect(result.valueAsString, equals('I live, [one, two, three]!'));
172 172
173 // Spawn the script with arguments and message 173 // Spawn the script with arguments and message
174 completer = new Completer(); 174 completer = new Completer();
175 sub = await vm.listenEventStream(VM.kIsolateStream, (ServiceEvent event) { 175 sub = await vm.listenEventStream(VM.kIsolateStream, (ServiceEvent event) {
176 if (event.kind == ServiceEvent.kIsolateSpawn) { 176 if (event.kind == ServiceEvent.kIsolateSpawn) {
177 expect(event.spawnToken, equals('mySpawnToken2')); 177 expect(event.spawnToken, equals('mySpawnToken2'));
178 expect(event.isolate, isNotNull); 178 expect(event.isolate, isNotNull);
179 expect(event.isolate.name, equals('devfs_file2.dart\$main')); 179 expect(event.isolate.name, equals('devfs_file2.dart\:main()'));
rmacnak 2017/08/24 19:00:19 The colon doesn't need to be escaped.
cbernaschina 2017/08/24 20:19:33 Done.
180 completer.complete(event.isolate); 180 completer.complete(event.isolate);
181 sub.cancel(); 181 sub.cancel();
182 } 182 }
183 }); 183 });
184 result = await vm.invokeRpcNoUpgrade('_spawnUri', { 184 result = await vm.invokeRpcNoUpgrade('_spawnUri', {
185 'token': 'mySpawnToken2', 185 'token': 'mySpawnToken2',
186 'uri': '${fsUri}${filePaths[2]}', 186 'uri': '${fsUri}${filePaths[2]}',
187 'args': ['A', 'B', 'C'], 187 'args': ['A', 'B', 'C'],
188 'message': 'test' 188 'message': 'test'
189 }); 189 });
(...skipping 12 matching lines...) Expand all
202 202
203 // Delete the fs. 203 // Delete the fs.
204 result = await vm.invokeRpcNoUpgrade('_deleteDevFS', { 204 result = await vm.invokeRpcNoUpgrade('_deleteDevFS', {
205 'fsName': fsName, 205 'fsName': fsName,
206 }); 206 });
207 expect(result['type'], equals('Success')); 207 expect(result['type'], equals('Success'));
208 }, 208 },
209 ]; 209 ];
210 210
211 main(args) async => runVMTests(args, tests); 211 main(args) async => runVMTests(args, tests);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698