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

Side by Side Diff: tests/compiler/dart2js/analyze_helper.dart

Issue 1838903003: Make analyze_test_test less verbose (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 library analyze_helper; 5 library analyze_helper;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 import 'package:compiler/compiler.dart' as api; 9 import 'package:compiler/compiler.dart' as api;
10 import 'package:compiler/compiler_new.dart' as new_api; 10 import 'package:compiler/compiler_new.dart' as new_api;
11 import 'package:compiler/src/apiimpl.dart'; 11 import 'package:compiler/src/apiimpl.dart';
12 import 'package:compiler/src/commandline_options.dart'; 12 import 'package:compiler/src/commandline_options.dart';
13 import 'package:compiler/src/diagnostics/messages.dart' show 13 import 'package:compiler/src/diagnostics/messages.dart' show
14 Message, 14 Message,
15 MessageKind; 15 MessageKind;
16 import 'package:compiler/src/filenames.dart'; 16 import 'package:compiler/src/filenames.dart';
17 import 'package:compiler/src/source_file_provider.dart'; 17 import 'package:compiler/src/source_file_provider.dart';
18 import 'package:compiler/src/util/uri_extras.dart'; 18 import 'package:compiler/src/util/uri_extras.dart';
19 19
20 /// Option for hiding whitelisted messages.
21 const String HIDE_WHITELISTED = '--hide-whitelisted';
22
20 /** 23 /**
21 * Map of whitelisted warnings and errors. 24 * Map of whitelisted warnings and errors.
22 * 25 *
23 * Only add a whitelisting together with a bug report to dartbug.com and add 26 * Only add a whitelisting together with a bug report to dartbug.com and add
24 * the bug issue number as a comment on the whitelisting. 27 * the bug issue number as a comment on the whitelisting.
25 * 28 *
26 * Use an identifiable suffix of the file uri as key. Use a fixed substring of 29 * Use an identifiable suffix of the file uri as key. Use a fixed substring of
27 * the error/warning message in the list of whitelistings for each file. 30 * the error/warning message in the list of whitelistings for each file.
28 */ 31 */
29 // TODO(johnniwinther): Support canonical URIs as keys and message kinds as 32 // TODO(johnniwinther): Support canonical URIs as keys and message kinds as
30 // values. 33 // values.
31 34
32 class CollectingDiagnosticHandler extends FormattingDiagnosticHandler { 35 class CollectingDiagnosticHandler extends FormattingDiagnosticHandler {
33 bool hasWarnings = false; 36 bool hasWarnings = false;
34 bool hasHint = false; 37 bool hasHint = false;
35 bool hasErrors = false; 38 bool hasErrors = false;
36 bool lastWasWhitelisted = false; 39 bool lastWasWhitelisted = false;
40 bool showWhitelisted = true;
37 41
38 Map<String, Map<dynamic/*String|MessageKind*/, int>> whiteListMap 42 Map<String, Map<dynamic/*String|MessageKind*/, int>> whiteListMap
39 = new Map<String, Map<dynamic/*String|MessageKind*/, int>>(); 43 = new Map<String, Map<dynamic/*String|MessageKind*/, int>>();
40 44
41 CollectingDiagnosticHandler( 45 CollectingDiagnosticHandler(
42 Map<String, List/*<String|MessageKind>*/> whiteList, 46 Map<String, List/*<String|MessageKind>*/> whiteList,
43 SourceFileProvider provider) 47 SourceFileProvider provider)
44 : super(provider) { 48 : super(provider) {
45 whiteList.forEach((String file, List/*<String|MessageKind>*/ messageParts) { 49 whiteList.forEach((String file, List/*<String|MessageKind>*/ messageParts) {
46 var useMap = new Map<dynamic/*String|MessageKind*/, int>(); 50 var useMap = new Map<dynamic/*String|MessageKind*/, int>();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 return false; 110 return false;
107 } 111 }
108 112
109 @override 113 @override
110 void report(Message message, Uri uri, int begin, int end, String text, 114 void report(Message message, Uri uri, int begin, int end, String text,
111 api.Diagnostic kind) { 115 api.Diagnostic kind) {
112 if (kind == api.Diagnostic.WARNING) { 116 if (kind == api.Diagnostic.WARNING) {
113 if (checkWhiteList(uri, message, text)) { 117 if (checkWhiteList(uri, message, text)) {
114 // Suppress whitelisted warnings. 118 // Suppress whitelisted warnings.
115 lastWasWhitelisted = true; 119 lastWasWhitelisted = true;
116 if (verbose) { 120 if (showWhitelisted || verbose) {
117 super.report(message, uri, begin, end, text, kind); 121 super.report(message, uri, begin, end, text, kind);
118 } 122 }
119 return; 123 return;
120 } 124 }
121 hasWarnings = true; 125 hasWarnings = true;
122 } 126 }
123 if (kind == api.Diagnostic.HINT) { 127 if (kind == api.Diagnostic.HINT) {
124 if (checkWhiteList(uri, message, text)) { 128 if (checkWhiteList(uri, message, text)) {
125 // Suppress whitelisted hints. 129 // Suppress whitelisted hints.
126 lastWasWhitelisted = true; 130 lastWasWhitelisted = true;
127 if (verbose) { 131 if (showWhitelisted || verbose) {
128 super.report(message, uri, begin, end, text, kind); 132 super.report(message, uri, begin, end, text, kind);
129 } 133 }
130 return; 134 return;
131 } 135 }
132 hasHint = true; 136 hasHint = true;
133 } 137 }
134 if (kind == api.Diagnostic.ERROR) { 138 if (kind == api.Diagnostic.ERROR) {
135 if (checkWhiteList(uri, message, text)) { 139 if (checkWhiteList(uri, message, text)) {
136 // Suppress whitelisted errors. 140 // Suppress whitelisted errors.
137 lastWasWhitelisted = true; 141 lastWasWhitelisted = true;
138 if (verbose) { 142 if (showWhitelisted || verbose) {
139 super.report(message, uri, begin, end, text, kind); 143 super.report(message, uri, begin, end, text, kind);
140 } 144 }
141 return; 145 return;
142 } 146 }
143 hasErrors = true; 147 hasErrors = true;
144 } 148 }
145 if (kind == api.Diagnostic.INFO && lastWasWhitelisted) { 149 if (kind == api.Diagnostic.INFO && lastWasWhitelisted) {
146 return; 150 return;
147 } 151 }
148 lastWasWhitelisted = false; 152 lastWasWhitelisted = false;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 break; 201 break;
198 case AnalysisMode.ALL: 202 case AnalysisMode.ALL:
199 options.add(Flags.analyzeAll); 203 options.add(Flags.analyzeAll);
200 break; 204 break;
201 case AnalysisMode.TREE_SHAKING: 205 case AnalysisMode.TREE_SHAKING:
202 break; 206 break;
203 } 207 }
204 if (options.contains(Flags.verbose)) { 208 if (options.contains(Flags.verbose)) {
205 handler.verbose = true; 209 handler.verbose = true;
206 } 210 }
211 if (options.contains(HIDE_WHITELISTED)) {
212 handler.showWhitelisted = false;
213 }
Bill Hesse 2016/03/29 11:56:26 Are verbose and showWhitelisted only used together
Johnni Winther 2016/03/30 07:02:30 Verbose include (some very noisy) info messages wh
207 var compiler = new CompilerImpl( 214 var compiler = new CompilerImpl(
208 provider, 215 provider,
209 null, 216 null,
210 handler, 217 handler,
211 new new_api.CompilerOptions.parse( 218 new new_api.CompilerOptions.parse(
212 libraryRoot: libraryRoot, 219 libraryRoot: libraryRoot,
213 packageRoot: packageRoot, 220 packageRoot: packageRoot,
214 options: options, 221 options: options,
215 environment: {})); 222 environment: {}));
216 String MESSAGE = """ 223 String MESSAGE = """
217 224
218 225
219 === 226 ===
220 === ERROR: Unexpected result of analysis. 227 === ERROR: Unexpected result of analysis.
221 === 228 ===
222 === Please update [WHITE_LIST] in $testFileName 229 === Please update [WHITE_LIST] in $testFileName
223 === 230 ===
224 """; 231 """;
225 232
226 if (mode == AnalysisMode.URI) { 233 if (mode == AnalysisMode.URI) {
227 for (Uri uri in uriList) { 234 for (Uri uri in uriList) {
235 print('Analyzing uri: $uri');
228 await compiler.analyzeUri(uri); 236 await compiler.analyzeUri(uri);
229 } 237 }
230 } else if (mode != AnalysisMode.TREE_SHAKING) { 238 } else if (mode != AnalysisMode.TREE_SHAKING) {
239 print('Analyzing libraries: $uriList');
231 compiler.librariesToAnalyzeWhenRun = uriList; 240 compiler.librariesToAnalyzeWhenRun = uriList;
232 await compiler.run(null); 241 await compiler.run(null);
233 } else { 242 } else {
243 print('Analyzing entry point: ${uriList.single}');
234 await compiler.run(uriList.single); 244 await compiler.run(uriList.single);
235 } 245 }
236 246
237 bool result; 247 bool result;
238 if (checkResults != null) { 248 if (checkResults != null) {
239 result = checkResults(compiler, handler); 249 result = checkResults(compiler, handler);
240 } else { 250 } else {
241 result = handler.checkResults(); 251 result = handler.checkResults();
242 } 252 }
243 if (!result) { 253 if (!result) {
244 print(MESSAGE); 254 print(MESSAGE);
245 exit(1); 255 exit(1);
246 } 256 }
247 } 257 }
OLDNEW
« no previous file with comments | « no previous file | tests/compiler/dart2js/analyze_test_test.dart » ('j') | tests/compiler/dart2js/analyze_test_test.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698