OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'package:front_end/front_end.dart'; | 5 import 'package:front_end/front_end.dart'; |
6 import 'package:front_end/src/fasta/kernel/utils.dart'; | 6 import 'package:front_end/src/fasta/kernel/utils.dart'; |
| 7 import 'package:front_end/src/fasta/deprecated_problems.dart' |
| 8 show deprecated_InputError; |
7 import 'package:front_end/src/testing/compiler_common.dart'; | 9 import 'package:front_end/src/testing/compiler_common.dart'; |
8 import 'package:kernel/ast.dart'; | 10 import 'package:kernel/ast.dart'; |
9 | 11 |
10 import 'package:test/test.dart'; | 12 import 'package:test/test.dart'; |
11 | 13 |
12 main() { | 14 main() { |
13 group('kernelForProgram', () { | 15 group('kernelForProgram', () { |
14 test('compiler fails if it cannot find sdk sources', () async { | 16 test('compiler fails if it cannot find sdk sources', () async { |
15 var errors = []; | 17 var errors = []; |
16 var options = new CompilerOptions() | 18 var options = new CompilerOptions() |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 | 56 |
55 test('compiler requires a main method', () async { | 57 test('compiler requires a main method', () async { |
56 var errors = []; | 58 var errors = []; |
57 var options = new CompilerOptions()..onError = (e) => errors.add(e); | 59 var options = new CompilerOptions()..onError = (e) => errors.add(e); |
58 await compileScript('a() => print("hi");', options: options); | 60 await compileScript('a() => print("hi");', options: options); |
59 // TODO(sigmund): when we expose codes in the public APIs, we should | 61 // TODO(sigmund): when we expose codes in the public APIs, we should |
60 // compare the code here and not the message. | 62 // compare the code here and not the message. |
61 expect(errors.first.message, contains("No 'main' method found")); | 63 expect(errors.first.message, contains("No 'main' method found")); |
62 }); | 64 }); |
63 | 65 |
64 test('default error handler throws', () async { | 66 test('default error handler throws on errors', () async { |
| 67 var options = new CompilerOptions(); |
65 var exceptionThrown = false; | 68 var exceptionThrown = false; |
66 try { | 69 try { |
67 await compileScript('a() => print("hi");'); | 70 await compileScript('a() => print("hi");', options: options); |
68 } on CompilationError catch (e) { | 71 } on deprecated_InputError catch (e) { |
69 exceptionThrown = true; | 72 exceptionThrown = true; |
70 expect(e.message, contains("No 'main' method found")); | 73 expect('${e.error}', contains("Compilation aborted")); |
71 } | 74 } |
72 expect(exceptionThrown, isTrue); | 75 expect(exceptionThrown, isTrue); |
73 }); | 76 }); |
74 | 77 |
75 test('generated program contains source-info', () async { | 78 test('generated program contains source-info', () async { |
76 var program = await compileScript('a() => print("hi"); main() {}', | 79 var program = await compileScript('a() => print("hi"); main() {}', |
77 fileName: 'a.dart'); | 80 fileName: 'a.dart'); |
78 // Kernel always store an empty '' key in the map, so there is always at | 81 // Kernel always store an empty '' key in the map, so there is always at |
79 // least one. Having more means that source-info is added. | 82 // least one. Having more means that source-info is added. |
80 expect(program.uriToSource.keys.length, greaterThan(1)); | 83 expect(program.uriToSource.keys.length, greaterThan(1)); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 checkDCallsC(unitD1); | 206 checkDCallsC(unitD1); |
204 | 207 |
205 var unitD2 = await compileUnit(['d.dart'], sources, | 208 var unitD2 = await compileUnit(['d.dart'], sources, |
206 inputSummaries: ['bc.dill', 'a.dill']); | 209 inputSummaries: ['bc.dill', 'a.dill']); |
207 checkDCallsC(unitD2); | 210 checkDCallsC(unitD2); |
208 }); | 211 }); |
209 | 212 |
210 // TODO(sigmund): add tests with trimming dependencies | 213 // TODO(sigmund): add tests with trimming dependencies |
211 }); | 214 }); |
212 } | 215 } |
OLD | NEW |