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

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

Issue 1150303004: Switch to using SourceLocation universally in service protocol. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: post merge Created 5 years, 6 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=--compile-all --error_on_bad_type --error_on_bad_override 4 // VMOptions=--compile-all --error_on_bad_type --error_on_bad_override
5 5
6 import 'package:observatory/service_io.dart'; 6 import 'package:observatory/service_io.dart';
7 import 'package:unittest/unittest.dart'; 7 import 'package:unittest/unittest.dart';
8 import 'test_helper.dart'; 8 import 'test_helper.dart';
9 import 'dart:async'; 9 import 'dart:async';
10 10
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 return completer.future; 76 return completer.future;
77 }); 77 });
78 }, 78 },
79 79
80 // Get coverage for function, class, library, script, and isolate. 80 // Get coverage for function, class, library, script, and isolate.
81 (Isolate isolate) { 81 (Isolate isolate) {
82 return isolate.getStack().then((ServiceMap stack) { 82 return isolate.getStack().then((ServiceMap stack) {
83 // Make sure we are in the right place. 83 // Make sure we are in the right place.
84 expect(stack.type, equals('Stack')); 84 expect(stack.type, equals('Stack'));
85 expect(stack['frames'].length, greaterThanOrEqualTo(2)); 85 expect(stack['frames'].length, greaterThanOrEqualTo(2));
86 expect(stack['frames'][0]['function'].name, equals('myFunction')); 86 expect(stack['frames'][0].function.name, equals('myFunction'));
87 expect(stack['frames'][0]['function'].dartOwner.name, equals('MyClass')); 87 expect(stack['frames'][0].function.dartOwner.name, equals('MyClass'));
88 88
89 var lib = isolate.rootLibrary; 89 var lib = isolate.rootLibrary;
90 var func = stack['frames'][0]['function']; 90 var func = stack['frames'][0].function;
91 expect(func.name, equals('myFunction')); 91 expect(func.name, equals('myFunction'));
92 var cls = stack['frames'][0]['function'].dartOwner; 92 var cls = func.dartOwner;
93 expect(cls.name, equals('MyClass')); 93 expect(cls.name, equals('MyClass'));
94 94
95 List tests = []; 95 List tests = [];
96 // Function 96 // Function
97 tests.add(isolate.invokeRpcNoUpgrade('_getCoverage', 97 tests.add(isolate.invokeRpcNoUpgrade('_getCoverage',
98 { 'targetId': func.id }) 98 { 'targetId': func.id })
99 .then((Map coverage) { 99 .then((Map coverage) {
100 expect(coverage['type'], equals('CodeCoverage')); 100 expect(coverage['type'], equals('CodeCoverage'));
101 expect(coverage['coverage'].length, equals(1)); 101 expect(coverage['coverage'].length, equals(1));
102 expect(normalize(coverage['coverage'][0]['hits']), 102 expect(normalize(coverage['coverage'][0]['hits']),
(...skipping 16 matching lines...) Expand all
119 expect(coverage['type'], equals('CodeCoverage')); 119 expect(coverage['type'], equals('CodeCoverage'));
120 expect(coverage['coverage'].length, equals(3)); 120 expect(coverage['coverage'].length, equals(3));
121 expect(normalize(coverage['coverage'][0]['hits']), 121 expect(normalize(coverage['coverage'][0]['hits']),
122 equals([15, 1, 16, 1, 17, 0, 19, 1, 122 equals([15, 1, 16, 1, 17, 0, 19, 1,
123 24, 1, 25, 1, 27, 0])); 123 24, 1, 25, 1, 27, 0]));
124 expect(normalize(coverage['coverage'][1]['hits']).take(12), 124 expect(normalize(coverage['coverage'][1]['hits']).take(12),
125 equals([33, 1, 36, 1, 37, 0, 32, 1, 45, 0, 46, 0])); 125 equals([33, 1, 36, 1, 37, 0, 32, 1, 45, 0, 46, 0]));
126 })); 126 }));
127 // Script 127 // Script
128 tests.add(cls.load().then((_) { 128 tests.add(cls.load().then((_) {
129 return isolate.invokeRpcNoUpgrade('_getCoverage', 129 return isolate.invokeRpcNoUpgrade(
130 { 'targetId': cls.script.id }) 130 '_getCoverage',
131 { 'targetId': cls.location.script.id })
131 .then((Map coverage) { 132 .then((Map coverage) {
132 expect(coverage['type'], equals('CodeCoverage')); 133 expect(coverage['type'], equals('CodeCoverage'));
133 expect(coverage['coverage'].length, equals(3)); 134 expect(coverage['coverage'].length, equals(3));
134 expect(normalize(coverage['coverage'][0]['hits']), 135 expect(normalize(coverage['coverage'][0]['hits']),
135 equals([15, 1, 16, 1, 17, 0, 19, 1, 136 equals([15, 1, 16, 1, 17, 0, 19, 1,
136 24, 1, 25, 1, 27, 0])); 137 24, 1, 25, 1, 27, 0]));
137 expect(normalize(coverage['coverage'][1]['hits']).take(12), 138 expect(normalize(coverage['coverage'][1]['hits']).take(12),
138 equals([33, 1, 36, 1, 37, 0, 32, 1, 45, 0, 46, 0])); 139 equals([33, 1, 36, 1, 37, 0, 32, 1, 45, 0, 46, 0]));
139 }); 140 });
140 })); 141 }));
141 // Isolate 142 // Isolate
142 tests.add(cls.load().then((_) { 143 tests.add(cls.load().then((_) {
143 return isolate.invokeRpcNoUpgrade('_getCoverage', {}) 144 return isolate.invokeRpcNoUpgrade('_getCoverage', {})
144 .then((Map coverage) { 145 .then((Map coverage) {
145 expect(coverage['type'], equals('CodeCoverage')); 146 expect(coverage['type'], equals('CodeCoverage'));
146 expect(coverage['coverage'].length, greaterThan(100)); 147 expect(coverage['coverage'].length, greaterThan(100));
147 }); 148 });
148 })); 149 }));
149 return Future.wait(tests); 150 return Future.wait(tests);
150 }); 151 });
151 }, 152 },
152 153
153 ]; 154 ];
154 155
155 main(args) => runIsolateTests(args, tests, testeeConcurrent: testFunction); 156 main(args) => runIsolateTests(args, tests, testeeConcurrent: testFunction);
OLDNEW
« no previous file with comments | « runtime/observatory/tests/service/code_test.dart ('k') | runtime/observatory/tests/service/debugger_location_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698