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

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

Issue 2762583003: Revert "Run dartfmt on all files under runtime." (Closed)
Patch Set: Created 3 years, 9 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) 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:developer'; 7 import 'dart:developer';
8 import 'dart:isolate' as I; 8 import 'dart:isolate' as I;
9 9
10 import 'package:observatory/service_io.dart'; 10 import 'package:observatory/service_io.dart';
11 import 'package:unittest/unittest.dart'; 11 import 'package:unittest/unittest.dart';
12 import 'service_test_common.dart'; 12 import 'service_test_common.dart';
13 import 'test_helper.dart'; 13 import 'test_helper.dart';
14 14
15 final spawnCount = 4; 15 final spawnCount = 4;
16 final resumeCount = spawnCount ~/ 2; 16 final resumeCount = spawnCount ~/ 2;
17 final isolates = []; 17 final isolates = [];
18 18
19 void spawnEntry(int i) {} 19 void spawnEntry(int i) {
20 }
20 21
21 Future during() async { 22 Future during() async {
22 debugger(); 23 debugger();
23 // Spawn spawnCount long lived isolates. 24 // Spawn spawnCount long lived isolates.
24 for (var i = 0; i < spawnCount; i++) { 25 for (var i = 0; i < spawnCount; i++) {
25 var isolate = await I.Isolate.spawn(spawnEntry, i); 26 var isolate = await I.Isolate.spawn(spawnEntry, i);
26 isolates.add(isolate); 27 isolates.add(isolate);
27 } 28 }
28 print('spawned all isolates'); 29 print('spawned all isolates');
29 } 30 }
30 31
31 int numPaused(vm) { 32 int numPaused(vm) {
32 int paused = 0; 33 int paused = 0;
33 for (var isolate in vm.isolates) { 34 for (var isolate in vm.isolates) {
34 if (isolate.paused) { 35 if (isolate.paused) {
35 paused++; 36 paused++;
36 } 37 }
37 } 38 }
38 return paused; 39 return paused;
39 } 40 }
40 41
41 var tests = [ 42 var tests = [
42 (VM vm) async { 43 (VM vm) async {
43 expect(vm.isolates.length, 1); 44 expect(vm.isolates.length, 1);
44 await hasStoppedAtBreakpoint(vm.isolates[0]); 45 await hasStoppedAtBreakpoint(vm.isolates[0]);
45 }, 46 },
47
46 (VM vm) async { 48 (VM vm) async {
47 Completer completer = new Completer(); 49 Completer completer = new Completer();
48 var stream = await vm.getEventStream(VM.kIsolateStream); 50 var stream = await vm.getEventStream(VM.kIsolateStream);
49 var subscription; 51 var subscription;
50 int startCount = 0; 52 int startCount = 0;
51 int runnableCount = 0; 53 int runnableCount = 0;
52 subscription = stream.listen((ServiceEvent event) { 54 subscription = stream.listen((ServiceEvent event) {
53 if (event.kind == ServiceEvent.kIsolateStart) { 55 if (event.kind == ServiceEvent.kIsolateStart) {
54 startCount++; 56 startCount++;
55 } 57 }
56 if (event.kind == ServiceEvent.kIsolateRunnable) { 58 if (event.kind == ServiceEvent.kIsolateRunnable) {
57 runnableCount++; 59 runnableCount++;
58 } 60 }
59 if (runnableCount == spawnCount) { 61 if (runnableCount == spawnCount) {
60 subscription.cancel(); 62 subscription.cancel();
61 completer.complete(null); 63 completer.complete(null);
62 } 64 }
63 }); 65 });
64 expect(vm.isolates.length, 1); 66 expect(vm.isolates.length, 1);
65 vm.isolates[0].resume(); 67 vm.isolates[0].resume();
66 await completer.future; 68 await completer.future;
67 expect(startCount, spawnCount); 69 expect(startCount, spawnCount);
68 expect(runnableCount, spawnCount); 70 expect(runnableCount, spawnCount);
69 expect(vm.isolates.length, spawnCount + 1); 71 expect(vm.isolates.length, spawnCount + 1);
70 }, 72 },
73
71 (VM vm) async { 74 (VM vm) async {
72 // Load each isolate. 75 // Load each isolate.
73 for (var isolate in vm.isolates) { 76 for (var isolate in vm.isolates) {
74 await isolate.load(); 77 await isolate.load();
75 } 78 }
76 }, 79 },
80
77 (VM vm) async { 81 (VM vm) async {
78 Completer completer = new Completer(); 82 Completer completer = new Completer();
79 var stream = await vm.getEventStream(VM.kDebugStream); 83 var stream = await vm.getEventStream(VM.kDebugStream);
80 if (numPaused(vm) < (spawnCount + 1)) { 84 if (numPaused(vm) < (spawnCount + 1)) {
81 var subscription; 85 var subscription;
82 subscription = stream.listen((ServiceEvent event) { 86 subscription = stream.listen((ServiceEvent event) {
83 if (event.kind == ServiceEvent.kPauseExit) { 87 if (event.kind == ServiceEvent.kPauseExit) {
84 if (numPaused(vm) == (spawnCount + 1)) { 88 if (numPaused(vm) == (spawnCount + 1)) {
85 subscription.cancel(); 89 subscription.cancel();
86 completer.complete(null); 90 completer.complete(null);
87 } 91 }
88 } 92 }
89 }); 93 });
90 await completer.future; 94 await completer.future;
91 } 95 }
92 expect(numPaused(vm), spawnCount + 1); 96 expect(numPaused(vm), spawnCount + 1);
93 }, 97 },
98
99
94 (VM vm) async { 100 (VM vm) async {
95 var resumedReceived = 0; 101 var resumedReceived = 0;
96 Completer completer = new Completer(); 102 Completer completer = new Completer();
97 var stream = await vm.getEventStream(VM.kIsolateStream); 103 var stream = await vm.getEventStream(VM.kIsolateStream);
98 var subscription; 104 var subscription;
99 subscription = stream.listen((ServiceEvent event) { 105 subscription = stream.listen((ServiceEvent event) {
100 if (event.kind == ServiceEvent.kIsolateExit) { 106 if (event.kind == ServiceEvent.kIsolateExit) {
101 resumedReceived++; 107 resumedReceived++;
102 if (resumedReceived >= resumeCount) { 108 if (resumedReceived >= resumeCount) {
103 subscription.cancel(); 109 subscription.cancel();
104 completer.complete(null); 110 completer.complete(null);
105 } 111 }
106 } 112 }
107 }); 113 });
108 114
109 // Resume a subset of the isolates. 115 // Resume a subset of the isolates.
110 var resumesIssued = 0; 116 var resumesIssued = 0;
111 var isolateList = vm.isolates.toList(); 117 var isolateList = vm.isolates.toList();
112 for (var isolate in isolateList) { 118 for (var isolate in isolateList) {
113 if (isolate.name.endsWith('main')) { 119 if (isolate.name.endsWith('main')) {
114 continue; 120 continue;
115 } 121 }
116 try { 122 try {
117 resumesIssued++; 123 resumesIssued++;
118 await isolate.resume(); 124 await isolate.resume();
119 } catch (_) {} 125 } catch(_) {}
120 if (resumesIssued == resumeCount) { 126 if (resumesIssued == resumeCount) {
121 break; 127 break;
122 } 128 }
123 } 129 }
124 await completer.future; 130 await completer.future;
125 }, 131 },
132
126 (VM vm) async { 133 (VM vm) async {
127 expect(numPaused(vm), spawnCount + 1 - resumeCount); 134 expect(numPaused(vm), spawnCount + 1 - resumeCount);
128 }, 135 },
129 ]; 136 ];
130 137
131 main(args) async => 138 main(args) async => runVMTests(args, tests,
132 runVMTests(args, tests, testeeConcurrent: during, pause_on_exit: true); 139 testeeConcurrent: during,
140 pause_on_exit: true);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698