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

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

Issue 2680303002: Kernel debugging; service tests (Closed)
Patch Set: New failing test Created 3 years, 10 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 '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 'service_test_common.dart'; 9 import 'service_test_common.dart';
10 import 'dart:developer'; 10 import 'dart:developer';
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 // Make sure we are in the right place. 54 // Make sure we are in the right place.
55 expect(stack.type, equals('Stack')); 55 expect(stack.type, equals('Stack'));
56 expect(stack['frames'].length, greaterThanOrEqualTo(2)); 56 expect(stack['frames'].length, greaterThanOrEqualTo(2));
57 expect(stack['frames'][0].function.name, equals('myFunction')); 57 expect(stack['frames'][0].function.name, equals('myFunction'));
58 expect(stack['frames'][0].function.dartOwner.name, equals('MyClass')); 58 expect(stack['frames'][0].function.dartOwner.name, equals('MyClass'));
59 59
60 var func = stack['frames'][0].function; 60 var func = stack['frames'][0].function;
61 expect(func.name, equals('myFunction')); 61 expect(func.name, equals('myFunction'));
62 await func.load(); 62 await func.load();
63 63
64 var expectedRange = { 64 var expectedRange;
65 'scriptIndex': 0, 65 if (isKernel(isolate)) {
66 'startPos': 39, 66 expectedRange = {
67 'endPos': 88, 67 'scriptIndex': 0,
68 'compiled': true, 68 'startPos': 501,
69 'coverage': {'hits': [54, 72, 82], 'misses': [60]} 69 'endPos': 633,
70 }; 70 'compiled': true,
71 'coverage': {'hits': [539, 590, 619], 'misses': [552]}
72 };
73 } else {
74 expectedRange = {
75 'scriptIndex': 0,
76 'startPos': 39,
77 'endPos': 88,
78 'compiled': true,
79 'coverage': {'hits': [54, 72, 82], 'misses': [60]}
80 };
81 }
71 82
72 // Full script 83 // Full script
73 var params = { 'reports' : ['Coverage'], 84 var params = { 'reports' : ['Coverage'],
74 'scriptId' : func.location.script.id }; 85 'scriptId' : func.location.script.id };
75 var coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params); 86 var coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
76 expect(coverage['type'], equals('SourceReport')); 87 expect(coverage['type'], equals('SourceReport'));
77 expect(coverage['ranges'].length, 6); 88 expect(coverage['ranges'].length, 6);
78 expect(coverage['ranges'][0], equals(expectedRange)); 89 expect(coverage['ranges'][0], equals(expectedRange));
79 expect(coverage['scripts'].length, 1); 90 expect(coverage['scripts'].length, 1);
80 expect(coverage['scripts'][0]['uri'], 91 expect(coverage['scripts'][0]['uri'],
81 endsWith('get_source_report_test.dart')); 92 endsWith('get_source_report_test.dart'));
82 expect(allRangesCompiled(coverage), isFalse); 93 expect(allRangesCompiled(coverage), isFalse);
83 94
84 // Force compilation. 95 // Force compilation.
85 params = { 'reports' : ['Coverage'], 96 params = { 'reports' : ['Coverage'],
86 'scriptId' : func.location.script.id, 97 'scriptId' : func.location.script.id,
87 'forceCompile' : true }; 98 'forceCompile' : true };
88 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params); 99 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
89 expect(coverage['type'], equals('SourceReport')); 100 expect(coverage['type'], equals('SourceReport'));
90 expect(coverage['ranges'].length, 6); 101 if (isKernel(isolate)) {
102 expect(coverage['ranges'].length, 7); // kernel async transform adds one.
Cutch 2017/02/08 16:48:20 please find a way to express the difference withou
103 } else {
104 expect(coverage['ranges'].length, 6);
105 }
91 expect(allRangesCompiled(coverage), isTrue); 106 expect(allRangesCompiled(coverage), isTrue);
92 107
93 // One function 108 // One function
94 params = { 'reports' : ['Coverage'], 109 params = { 'reports' : ['Coverage'],
95 'scriptId' : func.location.script.id, 110 'scriptId' : func.location.script.id,
96 'tokenPos' : func.location.tokenPos, 111 'tokenPos' : func.location.tokenPos,
97 'endTokenPos' : func.location.endTokenPos }; 112 'endTokenPos' : func.location.endTokenPos };
98 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params); 113 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
99 expect(coverage['type'], equals('SourceReport')); 114 expect(coverage['type'], equals('SourceReport'));
100 expect(coverage['ranges'].length, 1); 115 expect(coverage['ranges'].length, 1);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 expect(e.message, 165 expect(e.message,
151 "getSourceReport: the 'endTokenPos' parameter requires the " 166 "getSourceReport: the 'endTokenPos' parameter requires the "
152 "\'scriptId\' parameter"); 167 "\'scriptId\' parameter");
153 } 168 }
154 expect(caughtException, isTrue); 169 expect(caughtException, isTrue);
155 }, 170 },
156 171
157 ]; 172 ];
158 173
159 main(args) => runIsolateTests(args, tests, testeeConcurrent: testFunction); 174 main(args) => runIsolateTests(args, tests, testeeConcurrent: testFunction);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698