OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 that the compiler can generates code with compile time error according | 5 // Test that the compiler can generates code with compile time error according |
6 // to the compiler options. | 6 // to the compiler options. |
7 | 7 |
8 library dart2js.test.generate_code_with_compile_time_errors; | 8 library dart2js.test.generate_code_with_compile_time_errors; |
9 | 9 |
10 import 'package:expect/expect.dart'; | 10 import 'package:expect/expect.dart'; |
11 import 'package:async_helper/async_helper.dart'; | 11 import 'package:async_helper/async_helper.dart'; |
12 import 'package:compiler/src/compiler.dart'; | 12 import 'package:compiler/src/compiler.dart'; |
13 import 'package:compiler/src/dart_backend/dart_backend.dart'; | |
14 import 'package:compiler/src/js_backend/js_backend.dart'; | 13 import 'package:compiler/src/js_backend/js_backend.dart'; |
15 import 'memory_compiler.dart'; | 14 import 'memory_compiler.dart'; |
16 import 'output_collector.dart'; | 15 import 'output_collector.dart'; |
17 | 16 |
18 const MEMORY_SOURCE_FILES = const { | 17 const MEMORY_SOURCE_FILES = const { |
19 'main.dart': ''' | 18 'main.dart': ''' |
20 foo() { | 19 foo() { |
21 const list = []; | 20 const list = []; |
22 } | 21 } |
23 | 22 |
(...skipping 22 matching lines...) Expand all Loading... |
46 collector.warnings.isEmpty, | 45 collector.warnings.isEmpty, |
47 "Unexpected warnings: ${collector.warnings}"); | 46 "Unexpected warnings: ${collector.warnings}"); |
48 Expect.isFalse( | 47 Expect.isFalse( |
49 collector.errors.isEmpty, | 48 collector.errors.isEmpty, |
50 "Expected compile-time errors."); | 49 "Expected compile-time errors."); |
51 Expect.equals( | 50 Expect.equals( |
52 expectHint, | 51 expectHint, |
53 collector.hints.isNotEmpty, | 52 collector.hints.isNotEmpty, |
54 "Unexpected hints: ${collector.warnings}"); | 53 "Unexpected hints: ${collector.warnings}"); |
55 | 54 |
56 bool isCodeGenerated; | 55 JavaScriptBackend backend = compiler.backend; |
57 if (options.contains('--output-type=dart')) { | 56 bool isCodeGenerated = backend.generatedCode.isNotEmpty; |
58 DartBackend backend = compiler.backend; | |
59 isCodeGenerated = backend.outputter.libraryInfo != null; | |
60 } else { | |
61 JavaScriptBackend backend = compiler.backend; | |
62 isCodeGenerated = backend.generatedCode.isNotEmpty; | |
63 } | |
64 Expect.equals( | 57 Expect.equals( |
65 expectedCodeGenerated, | 58 expectedCodeGenerated, |
66 isCodeGenerated, | 59 isCodeGenerated, |
67 expectedCodeGenerated | 60 expectedCodeGenerated |
68 ? "Expected generated code for options $options." | 61 ? "Expected generated code for options $options." |
69 : "Expected no code generated for options $options."); | 62 : "Expected no code generated for options $options."); |
70 Expect.equals( | 63 Expect.equals( |
71 expectedOutput, | 64 expectedOutput, |
72 outputCollector.outputMap.isNotEmpty, | 65 outputCollector.outputMap.isNotEmpty, |
73 expectedOutput | 66 expectedOutput |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 expectedCodeGenerated: false, | 100 expectedCodeGenerated: false, |
108 expectedOutput: false, | 101 expectedOutput: false, |
109 expectHint: true); | 102 expectHint: true); |
110 await test( | 103 await test( |
111 ['--use-cps-ir', | 104 ['--use-cps-ir', |
112 '--generate-code-with-compile-time-errors', | 105 '--generate-code-with-compile-time-errors', |
113 '--test-mode'], | 106 '--test-mode'], |
114 expectedCodeGenerated: false, | 107 expectedCodeGenerated: false, |
115 expectedOutput: false, | 108 expectedOutput: false, |
116 expectHint: true); | 109 expectHint: true); |
117 | |
118 await test( | |
119 ['--output-type=dart'], | |
120 expectedCodeGenerated: false, | |
121 expectedOutput: false); | |
122 await test( | |
123 ['--output-type=dart', '--test-mode'], | |
124 expectedCodeGenerated: false, | |
125 expectedOutput: false); | |
126 await test( | |
127 ['--output-type=dart', '--generate-code-with-compile-time-errors'], | |
128 expectedCodeGenerated: false, | |
129 expectedOutput: false, | |
130 expectHint: true); | |
131 await test( | |
132 ['--output-type=dart', | |
133 '--generate-code-with-compile-time-errors', | |
134 '--test-mode'], | |
135 expectedCodeGenerated: false, | |
136 expectedOutput: false, | |
137 expectHint: true); | |
138 }); | 110 }); |
139 } | 111 } |
OLD | NEW |