| OLD | NEW |
| 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 // Test the exit code of dart2js in case of exceptions, errors, warnings, etc. | 5 // Test the exit code of dart2js in case of exceptions, errors, warnings, etc. |
| 6 | 6 |
| 7 | 7 |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'dart:io' show Platform; | 9 import 'dart:io' show Platform; |
| 10 | 10 |
| 11 import 'package:async_helper/async_helper.dart'; | 11 import 'package:async_helper/async_helper.dart'; |
| 12 import 'package:expect/expect.dart'; | 12 import 'package:expect/expect.dart'; |
| 13 | 13 |
| 14 import 'package:compiler/compiler.dart' as api; | 14 import 'package:compiler/compiler.dart' as old_api; |
| 15 import 'package:compiler/compiler_new.dart' as api; |
| 15 import 'package:compiler/src/compile_time_constants.dart'; | 16 import 'package:compiler/src/compile_time_constants.dart'; |
| 16 import 'package:compiler/src/dart2js.dart' as entry; | 17 import 'package:compiler/src/dart2js.dart' as entry; |
| 17 import 'package:compiler/src/dart2jslib.dart'; | 18 import 'package:compiler/src/dart2jslib.dart'; |
| 18 import 'package:compiler/src/apiimpl.dart' as apiimpl; | 19 import 'package:compiler/src/apiimpl.dart' as apiimpl; |
| 19 import 'package:compiler/src/elements/elements.dart'; | 20 import 'package:compiler/src/elements/elements.dart'; |
| 20 import 'package:compiler/src/library_loader.dart'; | 21 import 'package:compiler/src/library_loader.dart'; |
| 22 import 'package:compiler/src/null_compiler_output.dart'; |
| 23 import 'package:compiler/src/old_to_new_api.dart'; |
| 21 import 'package:compiler/src/resolution/resolution.dart'; | 24 import 'package:compiler/src/resolution/resolution.dart'; |
| 22 import 'package:compiler/src/scanner/scannerlib.dart'; | 25 import 'package:compiler/src/scanner/scannerlib.dart'; |
| 23 import 'package:compiler/src/util/util.dart'; | 26 import 'package:compiler/src/util/util.dart'; |
| 24 | 27 |
| 25 class TestCompiler extends apiimpl.Compiler { | 28 class TestCompiler extends apiimpl.Compiler { |
| 26 final String testMarker; | 29 final String testMarker; |
| 27 final String testType; | 30 final String testType; |
| 28 final Function onTest; | 31 final Function onTest; |
| 29 | 32 |
| 30 TestCompiler(api.CompilerInputProvider inputProvider, | 33 TestCompiler(api.CompilerInput inputProvider, |
| 31 api.CompilerOutputProvider outputProvider, | 34 api.CompilerOutput outputProvider, |
| 32 api.DiagnosticHandler handler, | 35 api.CompilerDiagnostics handler, |
| 33 Uri libraryRoot, | 36 Uri libraryRoot, |
| 34 Uri packageRoot, | 37 Uri packageRoot, |
| 35 List<String> options, | 38 List<String> options, |
| 36 Map<String, dynamic> environment, | 39 Map<String, dynamic> environment, |
| 37 Uri packageConfig, | 40 Uri packageConfig, |
| 38 api.PackagesDiscoveryProvider findPackages, | 41 api.PackagesDiscoveryProvider findPackages, |
| 39 String this.testMarker, | 42 String this.testMarker, |
| 40 String this.testType, | 43 String this.testType, |
| 41 Function this.onTest) | 44 Function this.onTest) |
| 42 : super(inputProvider, outputProvider, handler, libraryRoot, | 45 : super(inputProvider, outputProvider, handler, libraryRoot, |
| 43 packageRoot, options, environment, packageConfig, findPackages) { | 46 packageRoot, options, environment, packageConfig, findPackages) { |
| 44 scanner = new TestScanner(this); | 47 scanner = new TestScanner(this); |
| 45 resolver = new TestResolver(this, backend.constantCompilerTask); | 48 resolver = new TestResolver(this, backend.constantCompilerTask); |
| 46 test('Compiler'); | 49 test('Compiler'); |
| 47 } | 50 } |
| 48 | 51 |
| 49 Future<bool> run(Uri uri) { | 52 Future<bool> run(Uri uri) { |
| 50 test('Compiler.run'); | 53 test('Compiler.run'); |
| 51 return super.run(uri); | 54 return super.run(uri); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 Future testExitCode( | 146 Future testExitCode( |
| 144 String marker, String type, int expectedExitCode, List options) { | 147 String marker, String type, int expectedExitCode, List options) { |
| 145 bool testOccurred = false; | 148 bool testOccurred = false; |
| 146 | 149 |
| 147 void onTest(String testMarker, String testType) { | 150 void onTest(String testMarker, String testType) { |
| 148 if (testMarker == marker && testType == type) { | 151 if (testMarker == marker && testType == type) { |
| 149 testOccurred = true; | 152 testOccurred = true; |
| 150 } | 153 } |
| 151 } | 154 } |
| 152 return new Future(() { | 155 return new Future(() { |
| 153 Future<api.CompilationResult> compile( | 156 Future<old_api.CompilationResult> compile( |
| 154 Uri script, | 157 Uri script, |
| 155 Uri libraryRoot, | 158 Uri libraryRoot, |
| 156 Uri packageRoot, | 159 Uri packageRoot, |
| 157 api.CompilerInputProvider inputProvider, | 160 old_api.CompilerInputProvider inputProvider, |
| 158 api.DiagnosticHandler handler, | 161 old_api.DiagnosticHandler handler, |
| 159 [List<String> options = const [], | 162 [List<String> options = const [], |
| 160 api.CompilerOutputProvider outputProvider, | 163 old_api.CompilerOutputProvider outputProvider, |
| 161 Map<String, dynamic> environment = const {}, | 164 Map<String, dynamic> environment = const {}, |
| 162 Uri packageConfig, | 165 Uri packageConfig, |
| 163 api.PackagesDiscoveryProvider findPackages]) { | 166 api.PackagesDiscoveryProvider findPackages]) { |
| 164 libraryRoot = Platform.script.resolve('../../../sdk/'); | 167 libraryRoot = Platform.script.resolve('../../../sdk/'); |
| 165 outputProvider = NullSink.outputProvider; | 168 outputProvider = NullSink.outputProvider; |
| 166 // Use this to silence the test when debugging: | 169 // Use this to silence the test when debugging: |
| 167 // handler = (uri, begin, end, message, kind) {}; | 170 // handler = (uri, begin, end, message, kind) {}; |
| 168 Compiler compiler = new TestCompiler(inputProvider, | 171 Compiler compiler = new TestCompiler( |
| 169 outputProvider, | 172 new LegacyCompilerInput(inputProvider), |
| 170 handler, | 173 new LegacyCompilerOutput(outputProvider), |
| 171 libraryRoot, | 174 new LegacyCompilerDiagnostics(handler), |
| 172 packageRoot, | 175 libraryRoot, |
| 173 options, | 176 packageRoot, |
| 174 environment, | 177 options, |
| 175 packageConfig, | 178 environment, |
| 176 findPackages, | 179 packageConfig, |
| 177 marker, | 180 findPackages, |
| 178 type, | 181 marker, |
| 179 onTest); | 182 type, |
| 183 onTest); |
| 180 return compiler.run(script).then((bool success) { | 184 return compiler.run(script).then((bool success) { |
| 181 return new api.CompilationResult(compiler, isSuccess: success); | 185 return new old_api.CompilationResult(compiler, isSuccess: success); |
| 182 }); | 186 }); |
| 183 } | 187 } |
| 184 | 188 |
| 185 int foundExitCode; | 189 int foundExitCode; |
| 186 | 190 |
| 187 checkResult() { | 191 checkResult() { |
| 188 Expect.isTrue(testOccurred, 'testExitCode($marker, $type) did not occur'); | 192 Expect.isTrue(testOccurred, 'testExitCode($marker, $type) did not occur'); |
| 189 if (foundExitCode == null) foundExitCode = 0; | 193 if (foundExitCode == null) foundExitCode = 0; |
| 190 print('testExitCode($marker, $type) ' | 194 print('testExitCode($marker, $type) ' |
| 191 'exitCode=$foundExitCode expected=$expectedExitCode'); | 195 'exitCode=$foundExitCode expected=$expectedExitCode'); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 | 273 |
| 270 expected = _expectedExitCode( | 274 expected = _expectedExitCode( |
| 271 beforeRun: tests[marker], fatalWarnings: true); | 275 beforeRun: tests[marker], fatalWarnings: true); |
| 272 totalExpectedErrors += expected.length; | 276 totalExpectedErrors += expected.length; |
| 273 await testExitCodes(marker, expected, ['--fatal-warnings']); | 277 await testExitCodes(marker, expected, ['--fatal-warnings']); |
| 274 } | 278 } |
| 275 | 279 |
| 276 Expect.equals(totalExpectedErrors, checkedResults); | 280 Expect.equals(totalExpectedErrors, checkedResults); |
| 277 }); | 281 }); |
| 278 } | 282 } |
| OLD | NEW |