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

Unified Diff: tests/compiler/dart2js/hide_package_warnings_test.dart

Issue 173713002: Add --hide-package-warnings option. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comment Created 6 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 side-by-side diff with in-line comments
Download patch
Index: tests/compiler/dart2js/hide_package_warnings_test.dart
diff --git a/tests/compiler/dart2js/hide_package_warnings_test.dart b/tests/compiler/dart2js/hide_package_warnings_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..639eef8806ec23a070d5bd489803ec42668ed3a9
--- /dev/null
+++ b/tests/compiler/dart2js/hide_package_warnings_test.dart
@@ -0,0 +1,104 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Test that the '--hide-package-warnings' option works as intended.
+
+import 'package:async_helper/async_helper.dart';
+import 'package:expect/expect.dart';
+
+import 'memory_compiler.dart';
+
+/// Error code that creates 1 warning, 1 hint, and 1 info.
+const ERROR_CODE = """
+m(Object o) {
+ if (o is String) {
+ o = o.length;
+ }
+}""";
+
+const SOURCE = const {
+ 'main.dart': """
+import 'package:pkg_error1/pkg_error1.dart';
+import 'package:pkg_error2/pkg_error2.dart';
+import 'package:pkg_noerror/pkg_noerror.dart';
+import 'error.dart';
+""",
+
+ 'error.dart': ERROR_CODE,
+
+ 'pkg/pkg_error1/pkg_error1.dart': """
+import 'package:pkg_error2/pkg_error2.dart';
+import 'package:pkg_noerror/pkg_noerror.dart';
+$ERROR_CODE""",
+
+ 'pkg/pkg_error2/pkg_error2.dart': """
+import 'package:pkg_error1/pkg_error1.dart';
+import 'package:pkg_noerror/pkg_noerror.dart';
+$ERROR_CODE""",
+
+ 'pkg/pkg_noerror/pkg_noerror.dart': """
+import 'package:pkg_error1/pkg_error1.dart';
+import 'package:pkg_error2/pkg_error2.dart';
+"""};
+
+void test(List<Uri> entryPoints,
+ {bool hidePackageWarnings: false,
+ int warnings: 0,
+ int hints: 0,
+ int infos: 0}) {
+ var options = ['--analyze-only', '--analyze-all'];
+ if (hidePackageWarnings) {
+ options.add('--hide-package-warnings');
+ }
+ var collector = new DiagnosticCollector();
+ var compiler = compilerFor(SOURCE,
+ options: options,
+ packageRoot: Uri.parse('memory:pkg/'),
+ diagnosticHandler: collector);
+ Uri mainUri = null;
+ if (entryPoints.length == 1) {
+ mainUri = entryPoints[0];
+ } else {
+ compiler.librariesToAnalyzeWhenRun = entryPoints;
+ }
+ asyncTest(() => compiler.run(mainUri).then((_) {
+ print('==================================================================');
+ print('test: $entryPoints hidePackageWarnings=$hidePackageWarnings');
+ Expect.equals(0, collector.errors.length,
+ 'Unexpected errors: ${collector.errors}');
+ Expect.equals(warnings, collector.warnings.length,
+ 'Unexpected warnings: ${collector.warnings}');
+ Expect.equals(hints, collector.hints.length,
+ 'Unexpected hints: ${collector.hints}');
+ Expect.equals(infos, collector.infos.length,
+ 'Unexpected infos: ${collector.infos}');
+ print('==================================================================');
+ }));
+}
+
+void main() {
+ test([Uri.parse('memory:main.dart')],
+ hidePackageWarnings: false,
+ // From error.dart, package:pkg_error1 and package:pkg_error2:
+ warnings: 3, hints: 3, infos: 3);
+ test([Uri.parse('memory:main.dart')],
+ hidePackageWarnings: true,
+ // From error.dart only:
+ warnings: 1, hints: 1, infos: 1);
+ test([Uri.parse('package:pkg_error1/pkg_error1.dart')],
+ hidePackageWarnings: false,
+ // From package:pkg_error1 and package:pkg_error2:
+ warnings: 2, hints: 2, infos: 2);
+ test([Uri.parse('package:pkg_error1/pkg_error1.dart')],
+ hidePackageWarnings: true,
+ // From package:pkg_error1/pkg_error1.dart only:
+ warnings: 1, hints: 1, infos: 1);
+ test([Uri.parse('package:pkg_noerror/pkg_noerror.dart')],
+ hidePackageWarnings: false,
+ // From package:pkg_error1 and package:pkg_error2:
+ warnings: 2, hints: 2, infos: 2);
+ test([Uri.parse('package:pkg_noerror/pkg_noerror.dart')],
+ hidePackageWarnings: true);
+}
+
« no previous file with comments | « sdk/lib/_internal/compiler/implementation/dart2js.dart ('k') | tests/compiler/dart2js/in_user_code_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698