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

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

Issue 2829463003: Format all remaining unformatted runtime files other than multitests. (Closed)
Patch Set: Created 3 years, 8 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 27 matching lines...) Expand all
38 bool allRangesCompiled(coverage) { 38 bool allRangesCompiled(coverage) {
39 for (int i = 0; i < coverage['ranges'].length; i++) { 39 for (int i = 0; i < coverage['ranges'].length; i++) {
40 if (!coverage['ranges'][i]['compiled']) { 40 if (!coverage['ranges'][i]['compiled']) {
41 return false; 41 return false;
42 } 42 }
43 } 43 }
44 return true; 44 return true;
45 } 45 }
46 46
47 var tests = [ 47 var tests = [
48 hasStoppedAtBreakpoint,
49 (Isolate isolate) async {
50 var stack = await isolate.getStack();
48 51
49 hasStoppedAtBreakpoint, 52 // Make sure we are in the right place.
53 expect(stack.type, equals('Stack'));
54 expect(stack['frames'].length, greaterThanOrEqualTo(2));
55 expect(stack['frames'][0].function.name, equals('myFunction'));
56 expect(stack['frames'][0].function.dartOwner.name, equals('MyClass'));
50 57
51 (Isolate isolate) async { 58 var func = stack['frames'][0].function;
52 var stack = await isolate.getStack(); 59 expect(func.name, equals('myFunction'));
60 await func.load();
53 61
54 // Make sure we are in the right place. 62 var expectedRange = {
55 expect(stack.type, equals('Stack')); 63 'scriptIndex': 0,
56 expect(stack['frames'].length, greaterThanOrEqualTo(2)); 64 'startPos': ifKernel(501, 39),
57 expect(stack['frames'][0].function.name, equals('myFunction')); 65 'endPos': ifKernel(633, 88),
58 expect(stack['frames'][0].function.dartOwner.name, equals('MyClass')); 66 'compiled': true,
67 'coverage': {
68 'hits': ifKernel([539, 590, 619], [54, 72, 82]),
69 'misses': ifKernel([552], [60])
70 }
71 };
59 72
60 var func = stack['frames'][0].function; 73 // Full script
61 expect(func.name, equals('myFunction')); 74 var params = {
62 await func.load(); 75 'reports': ['Coverage'],
76 'scriptId': func.location.script.id
77 };
78 var coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
79 expect(coverage['type'], equals('SourceReport'));
80 expect(coverage['ranges'].length, 6);
81 expect(coverage['ranges'][0], equals(expectedRange));
82 expect(coverage['scripts'].length, 1);
83 expect(
84 coverage['scripts'][0]['uri'], endsWith('get_source_report_test.dart'));
85 expect(allRangesCompiled(coverage), isFalse);
63 86
64 var expectedRange = { 87 // Force compilation.
65 'scriptIndex': 0, 88 params = {
66 'startPos': ifKernel(501, 39), 89 'reports': ['Coverage'],
67 'endPos': ifKernel(633, 88), 90 'scriptId': func.location.script.id,
68 'compiled': true, 91 'forceCompile': true
69 'coverage': { 92 };
70 'hits': ifKernel([539, 590, 619], [54, 72, 82]), 93 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
71 'misses': ifKernel([552], [60]) 94 expect(coverage['type'], equals('SourceReport'));
95 expect(coverage['ranges'].length, 6);
96 expect(allRangesCompiled(coverage), isTrue);
97
98 // One function
99 params = {
100 'reports': ['Coverage'],
101 'scriptId': func.location.script.id,
102 'tokenPos': func.location.tokenPos,
103 'endTokenPos': func.location.endTokenPos
104 };
105 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
106 expect(coverage['type'], equals('SourceReport'));
107 expect(coverage['ranges'].length, 1);
108 expect(coverage['ranges'][0], equals(expectedRange));
109 expect(coverage['scripts'].length, 1);
110 expect(
111 coverage['scripts'][0]['uri'], endsWith('get_source_report_test.dart'));
112
113 // Full isolate
114 params = {
115 'reports': ['Coverage']
116 };
117 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
118 expect(coverage['type'], equals('SourceReport'));
119 expect(coverage['ranges'].length, greaterThan(1));
120 expect(coverage['scripts'].length, greaterThan(1));
121
122 // Multiple reports (make sure enum list parameter parsing works).
123 params = {
124 'reports': ['_CallSites', 'Coverage', 'PossibleBreakpoints'],
125 'scriptId': func.location.script.id,
126 'tokenPos': func.location.tokenPos,
127 'endTokenPos': func.location.endTokenPos
128 };
129 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
130 expect(coverage['type'], equals('SourceReport'));
131 expect(coverage['ranges'].length, 1);
132 var range = coverage['ranges'][0];
133 expect(range.containsKey('callSites'), isTrue);
134 expect(range.containsKey('coverage'), isTrue);
135 expect(range.containsKey('possibleBreakpoints'), isTrue);
136
137 // missing scriptId with tokenPos.
138 bool caughtException = false;
139 try {
140 params = {
141 'reports': ['Coverage'],
142 'tokenPos': func.location.tokenPos
143 };
144 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
145 } on ServerRpcException catch (e) {
146 caughtException = true;
147 expect(e.code, equals(ServerRpcException.kInvalidParams));
148 expect(
149 e.message,
150 "getSourceReport: the 'tokenPos' parameter requires the "
151 "\'scriptId\' parameter");
72 } 152 }
73 }; 153 expect(caughtException, isTrue);
74 154
75 // Full script 155 // missing scriptId with endTokenPos.
76 var params = { 'reports' : ['Coverage'], 156 caughtException = false;
77 'scriptId' : func.location.script.id }; 157 try {
78 var coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params); 158 params = {
79 expect(coverage['type'], equals('SourceReport')); 159 'reports': ['Coverage'],
80 expect(coverage['ranges'].length, 6); 160 'endTokenPos': func.location.endTokenPos
81 expect(coverage['ranges'][0], equals(expectedRange)); 161 };
82 expect(coverage['scripts'].length, 1); 162 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
83 expect(coverage['scripts'][0]['uri'], 163 } on ServerRpcException catch (e) {
84 endsWith('get_source_report_test.dart')); 164 caughtException = true;
85 expect(allRangesCompiled(coverage), isFalse); 165 expect(e.code, equals(ServerRpcException.kInvalidParams));
86 166 expect(
87 // Force compilation. 167 e.message,
88 params = { 'reports' : ['Coverage'], 168 "getSourceReport: the 'endTokenPos' parameter requires the "
89 'scriptId' : func.location.script.id, 169 "\'scriptId\' parameter");
90 'forceCompile' : true }; 170 }
91 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params); 171 expect(caughtException, isTrue);
92 expect(coverage['type'], equals('SourceReport')); 172 },
93 expect(coverage['ranges'].length, 6);
94 expect(allRangesCompiled(coverage), isTrue);
95
96 // One function
97 params = { 'reports' : ['Coverage'],
98 'scriptId' : func.location.script.id,
99 'tokenPos' : func.location.tokenPos,
100 'endTokenPos' : func.location.endTokenPos };
101 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
102 expect(coverage['type'], equals('SourceReport'));
103 expect(coverage['ranges'].length, 1);
104 expect(coverage['ranges'][0], equals(expectedRange));
105 expect(coverage['scripts'].length, 1);
106 expect(coverage['scripts'][0]['uri'],
107 endsWith('get_source_report_test.dart'));
108
109 // Full isolate
110 params = { 'reports' : ['Coverage'] };
111 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
112 expect(coverage['type'], equals('SourceReport'));
113 expect(coverage['ranges'].length, greaterThan(1));
114 expect(coverage['scripts'].length, greaterThan(1));
115
116 // Multiple reports (make sure enum list parameter parsing works).
117 params = { 'reports' : ['_CallSites', 'Coverage', 'PossibleBreakpoints'],
118 'scriptId' : func.location.script.id,
119 'tokenPos' : func.location.tokenPos,
120 'endTokenPos' : func.location.endTokenPos };
121 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
122 expect(coverage['type'], equals('SourceReport'));
123 expect(coverage['ranges'].length, 1);
124 var range = coverage['ranges'][0];
125 expect(range.containsKey('callSites'), isTrue);
126 expect(range.containsKey('coverage'), isTrue);
127 expect(range.containsKey('possibleBreakpoints'), isTrue);
128
129 // missing scriptId with tokenPos.
130 bool caughtException = false;
131 try {
132 params = { 'reports' : ['Coverage'],
133 'tokenPos' : func.location.tokenPos };
134 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
135 } on ServerRpcException catch(e) {
136 caughtException = true;
137 expect(e.code, equals(ServerRpcException.kInvalidParams));
138 expect(e.message,
139 "getSourceReport: the 'tokenPos' parameter requires the "
140 "\'scriptId\' parameter");
141 }
142 expect(caughtException, isTrue);
143
144 // missing scriptId with endTokenPos.
145 caughtException = false;
146 try {
147 params = { 'reports' : ['Coverage'],
148 'endTokenPos' : func.location.endTokenPos };
149 coverage = await isolate.invokeRpcNoUpgrade('getSourceReport', params);
150 } on ServerRpcException catch(e) {
151 caughtException = true;
152 expect(e.code, equals(ServerRpcException.kInvalidParams));
153 expect(e.message,
154 "getSourceReport: the 'endTokenPos' parameter requires the "
155 "\'scriptId\' parameter");
156 }
157 expect(caughtException, isTrue);
158 },
159
160 ]; 173 ];
161 174
162 main(args) => runIsolateTests(args, tests, testeeConcurrent: testFunction); 175 main(args) => runIsolateTests(args, tests, testeeConcurrent: testFunction);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698