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

Side by Side Diff: runtime/observatory/test/isolate_lifecycle_test.dart

Issue 979823003: Major rework of vm service events. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 | Annotate | Revision Log
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 4
5 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:isolate' as I; 6 import 'dart:isolate' as I;
7 import 'dart:math'; 7 import 'dart:math';
8 8
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 26 matching lines...) Expand all
37 (VM vm) async { 37 (VM vm) async {
38 // Load each isolate. 38 // Load each isolate.
39 for (var isolate in vm.isolates) { 39 for (var isolate in vm.isolates) {
40 await isolate.load(); 40 await isolate.load();
41 } 41 }
42 }, 42 },
43 (VM vm) async { 43 (VM vm) async {
44 var pausedCount = 0; 44 var pausedCount = 0;
45 var runningCount = 0; 45 var runningCount = 0;
46 for (var isolate in vm.isolates) { 46 for (var isolate in vm.isolates) {
47 if (isolate.pauseEvent != null) { 47 if (isolate.paused) {
48 pausedCount++; 48 pausedCount++;
49 } else { 49 } else {
50 runningCount++; 50 runningCount++;
51 } 51 }
52 } 52 }
53 expect(pausedCount, spawnCount); 53 expect(pausedCount, spawnCount);
54 expect(runningCount, 1); 54 expect(runningCount, 1);
55 }, 55 },
56 (VM vm) async { 56 (VM vm) async {
57 var resumedReceived = 0; 57 var resumedReceived = 0;
58 var eventsDone = processServiceEvents(vm, (event, sub, completer) { 58 var eventsDone = processServiceEvents(vm, (event, sub, completer) {
59 if (event.eventType.startsWith('IsolateShutdown')) { 59 if (event.eventType == ServiceEvent.kIsolateExit) {
60 resumedReceived++; 60 resumedReceived++;
61 if (resumedReceived == resumeCount) { 61 if (resumedReceived == resumeCount) {
62 sub.cancel(); 62 sub.cancel();
63 completer.complete(null); 63 completer.complete(null);
64 } 64 }
65 } 65 }
66 }); 66 });
67 var resumesIssued = 0; 67 var resumesIssued = 0;
68 var isolateList = vm.isolates.toList(); 68 var isolateList = vm.isolates.toList();
69 for (var isolate in isolateList) { 69 for (var isolate in isolateList) {
70 if (isolate.name == 'root') { 70 if (isolate.name == 'root') {
71 continue; 71 continue;
72 } 72 }
73 try { 73 try {
74 resumesIssued++; 74 resumesIssued++;
75 await isolate.resume(); 75 await isolate.resume();
76 } catch(_) {} 76 } catch(_) {}
77 if (resumesIssued == resumeCount) { 77 if (resumesIssued == resumeCount) {
78 break; 78 break;
79 } 79 }
80 } 80 }
81 return eventsDone; 81 return eventsDone;
82 }, 82 },
83 (VM vm) async { 83 (VM vm) async {
84 var pausedCount = 0; 84 var pausedCount = 0;
85 var runningCount = 0; 85 var runningCount = 0;
86 for (var isolate in vm.isolates) { 86 for (var isolate in vm.isolates) {
87 if (isolate.pauseEvent != null) { 87 if (isolate.paused) {
88 pausedCount++; 88 pausedCount++;
89 } else { 89 } else {
90 runningCount++; 90 runningCount++;
91 } 91 }
92 } 92 }
93 expect(pausedCount, spawnCount - resumeCount); 93 expect(pausedCount, spawnCount - resumeCount);
94 expect(runningCount, 1); 94 expect(runningCount, 1);
95 }, 95 },
96 ]; 96 ];
97 97
98 main(args) async => runVMTests(args, tests, 98 main(args) async => runVMTests(args, tests,
99 testeeBefore: before, 99 testeeBefore: before,
100 testeeConcurrent: during, 100 testeeConcurrent: during,
101 pause_on_exit: true); 101 pause_on_exit: true);
OLDNEW
« no previous file with comments | « runtime/observatory/test/graph_test.dart ('k') | runtime/observatory/test/source_location_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698