Chromium Code Reviews| Index: tests/compiler/dart2js/analyze_only_test.dart |
| diff --git a/tests/compiler/dart2js/analyze_only_test.dart b/tests/compiler/dart2js/analyze_only_test.dart |
| index 74683ca81e1bee76ca0a693ce03428c8471b61b1..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 |
| --- a/tests/compiler/dart2js/analyze_only_test.dart |
| +++ b/tests/compiler/dart2js/analyze_only_test.dart |
| @@ -1,191 +1 @@ |
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
|
Siggi Cherem (dart-lang)
2017/05/02 19:38:19
was this test unnecessary? Not sure why it got del
Johnni Winther
2017/05/03 08:37:10
It was accidentally emptied. Re-inserted
|
| -// 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. |
| -// Smoke test of the dart2js compiler API. |
| -library analyze_only; |
| - |
| -import "package:expect/expect.dart"; |
| -import 'dart:async'; |
| -import "package:async_helper/async_helper.dart"; |
| - |
| -import '../../utils/dummy_compiler_test.dart' as dummy; |
| -import 'package:compiler/compiler_new.dart'; |
| -import 'package:compiler/src/options.dart'; |
| -import 'package:compiler/src/commandline_options.dart'; |
| -import 'package:compiler/src/diagnostics/messages.dart' |
| - show MessageKind, MessageTemplate; |
| -import 'package:compiler/src/old_to_new_api.dart'; |
| - |
| -import 'output_collector.dart'; |
| - |
| -runCompiler(String main, List<String> options, |
| - onValue(String code, List errors, List warnings)) { |
| - List errors = new List(); |
| - List warnings = new List(); |
| - |
| - Future<String> localProvider(Uri uri) { |
| - if (uri.scheme != 'main') return dummy.provider(uri); |
| - return new Future<String>.value(main); |
| - } |
| - |
| - void localHandler( |
| - Uri uri, int begin, int end, String message, Diagnostic kind) { |
| - dummy.handler(uri, begin, end, message, kind); |
| - if (kind == Diagnostic.ERROR) { |
| - errors.add(message); |
| - } else if (kind == Diagnostic.WARNING) { |
| - warnings.add(message); |
| - } |
| - } |
| - |
| - print('-----------------------------------------------'); |
| - print('main source:\n$main'); |
| - print('options: $options\n'); |
| - asyncStart(); |
| - OutputCollector outputCollector = new OutputCollector(); |
| - Future<CompilationResult> result = compile( |
| - new CompilerOptions.parse( |
| - entryPoint: new Uri(scheme: 'main'), |
| - libraryRoot: new Uri(scheme: 'lib', path: '/'), |
| - packageRoot: new Uri(scheme: 'package', path: '/'), |
| - options: options), |
| - new LegacyCompilerInput(localProvider), |
| - new LegacyCompilerDiagnostics(localHandler), |
| - outputCollector); |
| - result |
| - .then((_) { |
| - onValue(outputCollector.getOutput('', OutputType.js), errors, warnings); |
| - }, onError: (e, st) { |
| - throw 'Compilation failed: ${e} ${st}'; |
| - }) |
| - .then(asyncSuccess) |
| - .catchError((error, stack) { |
| - print('\n\n-----------------------------------------------'); |
| - print('main source:\n$main'); |
| - print('options: $options\n'); |
| - print('threw:\n $error\n$stack'); |
| - print('-----------------------------------------------\n\n'); |
| - throw error; |
| - }); |
| -} |
| - |
| -main() { |
| - runCompiler("", [Flags.generateCodeWithCompileTimeErrors], |
| - (String code, List errors, List warnings) { |
| - Expect.isNotNull(code); |
| - Expect.isTrue(errors.isEmpty, 'errors is not empty: $errors'); |
| - MessageTemplate template = |
| - MessageTemplate.TEMPLATES[MessageKind.MISSING_MAIN]; |
| - Expect.equals("${template.message({'main': 'main'})}", warnings.single); |
| - }); |
| - |
| - runCompiler("main() {}", [Flags.generateCodeWithCompileTimeErrors], |
| - (String code, List errors, List warnings) { |
| - Expect.isNotNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| - |
| - runCompiler("", [Flags.analyzeOnly], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty, 'errors is not empty: $errors'); |
| - MessageTemplate template = |
| - MessageTemplate.TEMPLATES[MessageKind.CONSIDER_ANALYZE_ALL]; |
| - Expect.equals("${template.message({'main': 'main'})}", warnings.single); |
| - }); |
| - |
| - runCompiler("main() {}", [Flags.analyzeOnly], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| - |
| - runCompiler("Foo foo; // Unresolved but not analyzed.", [Flags.analyzeOnly], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty, 'errors is not empty: $errors'); |
| - MessageTemplate template = |
| - MessageTemplate.TEMPLATES[MessageKind.CONSIDER_ANALYZE_ALL]; |
| - Expect.equals("${template.message({'main': 'main'})}", warnings.single); |
| - }); |
| - |
| - runCompiler( |
| - """main() { |
| - Foo foo; // Unresolved and analyzed. |
| - }""", |
| - [Flags.analyzeOnly], (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.equals(1, warnings.length); |
| - Expect.equals("Cannot resolve type 'Foo'.", warnings[0].toString()); |
| - }); |
| - |
| - runCompiler( |
| - """main() { |
| - Foo foo; // Unresolved and analyzed. |
| - }""", |
| - [Flags.analyzeOnly, Flags.analyzeSignaturesOnly], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| - |
| - runCompiler("Foo foo; // Unresolved and analyzed.", [ |
| - Flags.analyzeOnly, |
| - Flags.analyzeAll |
| - ], (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.equals("Cannot resolve type 'Foo'.", warnings[0].toString()); |
| - }); |
| - |
| - runCompiler( |
| - """Foo foo; // Unresolved and analyzed. |
| - main() {}""", |
| - [Flags.analyzeOnly, Flags.analyzeAll], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty, 'Unexpected errors: $errors.'); |
| - Expect.equals(1, warnings.length, 'Unexpected warning count: $warnings.'); |
| - Expect.equals("Cannot resolve type 'Foo'.", warnings[0].toString()); |
| - }); |
| - |
| - runCompiler("", [Flags.analyzeOnly, Flags.analyzeAll], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| - |
| - // --analyze-signatures-only implies --analyze-only |
| - runCompiler("", [Flags.analyzeSignaturesOnly, Flags.analyzeAll], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| - |
| - // Test that --allow-native-extensions works. |
| - runCompiler( |
| - """main() {} |
| - foo() native 'foo';""", |
| - [Flags.analyzeOnly, Flags.allowNativeExtensions], |
| - (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue(errors.isEmpty); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| - runCompiler( |
| - """main() {} |
| - foo() native 'foo';""", |
| - [Flags.analyzeOnly], (String code, List errors, List warnings) { |
| - Expect.isNull(code); |
| - Expect.isTrue( |
| - errors.single.startsWith("'native' modifier is not supported.")); |
| - Expect.isTrue(warnings.isEmpty); |
| - }); |
| -} |