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

Side by Side Diff: test/codegen_test.dart

Issue 1982853002: Allow the SDK to be set via a summary file (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Address comments Created 4 years, 7 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 unified diff | Download patch
« no previous file with comments | « pubspec.yaml ('k') | tool/build_sdk.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 /// Tests code generation. 5 /// Tests code generation.
6 /// Runs Dart Dev Compiler on all input in the `codegen` directory and checks 6 /// Runs Dart Dev Compiler on all input in the `codegen` directory and checks
7 /// that the output is what we expected. 7 /// that the output is what we expected.
8 library dev_compiler.test.codegen_test; 8 library dev_compiler.test.codegen_test;
9 9
10 import 'dart:convert' show JSON; 10 import 'dart:convert' show JSON;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 'corelib', 43 'corelib',
44 path.join('lib', 'convert'), 44 path.join('lib', 'convert'),
45 path.join('lib', 'html'), 45 path.join('lib', 'html'),
46 path.join('lib', 'math'), 46 path.join('lib', 'math'),
47 path.join('lib', 'typed_data') 47 path.join('lib', 'typed_data')
48 ]; 48 ];
49 49
50 var multitests = expandMultiTests(testDirs, filePattern); 50 var multitests = expandMultiTests(testDirs, filePattern);
51 51
52 // Build packages tests depend on 52 // Build packages tests depend on
53 var generatedSdkDir = path.join(testDirectory, '..', 'tool', 'generated_sdk'); 53 var sdkSummaryFile =
54 path.join(testDirectory, '..', 'lib', 'runtime', 'dart_sdk.sum');
54 var analyzerOptions = new AnalyzerOptions( 55 var analyzerOptions = new AnalyzerOptions(
55 customUrlMappings: packageUrlMappings, dartSdkPath: generatedSdkDir); 56 customUrlMappings: packageUrlMappings,
57 dartSdkSummaryPath: sdkSummaryFile);
56 var compiler = new ModuleCompiler(analyzerOptions); 58 var compiler = new ModuleCompiler(analyzerOptions);
57 59
58 group('dartdevc package', () { 60 group('dartdevc package', () {
59 _buildPackages(compiler, expectDir); 61 _buildPackages(compiler, expectDir);
60 62
61 test('matcher', () { 63 test('matcher', () {
62 _buildPackage(compiler, expectDir, "matcher"); 64 _buildPackage(compiler, expectDir, "matcher");
63 }); 65 });
64 66
65 test('unittest', () { 67 test('unittest', () {
66 _buildPackage(compiler, expectDir, "unittest"); 68 // Only build files applicable to the web - html_*.dart and its
69 // internal dependences.
70 _buildPackage(compiler, expectDir, "unittest", packageFiles: [
71 'unittest.dart',
72 'html_config.dart',
73 'html_individual_config.dart',
74 'html_enhanced_config.dart'
75 ]);
67 }); 76 });
68 77
69 test('stack_trace', () { 78 test('stack_trace', () {
70 _buildPackage(compiler, expectDir, "stack_trace"); 79 _buildPackage(compiler, expectDir, "stack_trace");
71 }); 80 });
72 81
73 test('path', () { 82 test('path', () {
74 _buildPackage(compiler, expectDir, "path"); 83 _buildPackage(compiler, expectDir, "path");
75 }); 84 });
76 }); 85 });
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 moduleName, baseDir, files.toList(), _moduleForLibrary); 130 moduleName, baseDir, files.toList(), _moduleForLibrary);
122 var module = compiler.compile(unit, options); 131 var module = compiler.compile(unit, options);
123 _writeModule(path.join(outDir.path, filename), module); 132 _writeModule(path.join(outDir.path, filename), module);
124 }); 133 });
125 } 134 }
126 }); 135 });
127 } 136 }
128 137
129 if (codeCoverage) { 138 if (codeCoverage) {
130 test('build_sdk code coverage', () { 139 test('build_sdk code coverage', () {
140 var generatedSdkDir =
141 path.join(testDirectory, '..', 'tool', 'generated_sdk');
131 return build_sdk.main(['--dart-sdk', generatedSdkDir, '-o', expectDir]); 142 return build_sdk.main(['--dart-sdk', generatedSdkDir, '-o', expectDir]);
132 }); 143 });
133 } 144 }
134 } 145 }
135 146
136 void _writeModule(String outPath, JSModuleFile result) { 147 void _writeModule(String outPath, JSModuleFile result) {
137 new Directory(path.dirname(outPath)).createSync(recursive: true); 148 new Directory(path.dirname(outPath)).createSync(recursive: true);
138 149
139 String errors = result.errors.join('\n'); 150 String errors = result.errors.join('\n');
140 if (errors.isNotEmpty && !errors.endsWith('\n')) errors += '\n'; 151 if (errors.isNotEmpty && !errors.endsWith('\n')) errors += '\n';
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 test(name, () { 202 test(name, () {
192 var input = new BuildUnit(name, inputDir, [uri], _moduleForLibrary); 203 var input = new BuildUnit(name, inputDir, [uri], _moduleForLibrary);
193 var built = compiler.compile(input, options); 204 var built = compiler.compile(input, options);
194 205
195 var outPath = path.join(expectDir, path.withoutExtension(uriPath)); 206 var outPath = path.join(expectDir, path.withoutExtension(uriPath));
196 _writeModule(outPath, built); 207 _writeModule(outPath, built);
197 }); 208 });
198 } 209 }
199 } 210 }
200 211
201 void _buildPackage(ModuleCompiler compiler, String expectDir, packageName) { 212 void _buildPackage(ModuleCompiler compiler, String expectDir, packageName,
213 {List<String> packageFiles}) {
202 var options = new CompilerOptions(sourceMap: false, summarizeApi: false); 214 var options = new CompilerOptions(sourceMap: false, summarizeApi: false);
203 215
204 var packageRoot = path.join(inputDir, 'packages'); 216 var packageRoot = path.join(inputDir, 'packages');
205 var packageInputDir = path.join(packageRoot, packageName); 217 var packageInputDir = path.join(packageRoot, packageName);
206 var files = new Directory(packageInputDir).listSync(recursive: true); 218 List<String> files;
219 if (packageFiles != null) {
220 // Only collect files transitively reachable from packageFiles
221 var reachable = new Set<String>();
222 for (var f in packageFiles) {
223 f = path.join(packageInputDir, f);
224 _collectTransitiveImports(new File(f).readAsStringSync(), reachable,
225 packageRoot: packageRoot, from: f);
226 }
227 files = reachable.toList();
228 } else {
229 // Collect all files in the packages directory
230 files = new Directory(packageInputDir)
231 .listSync(recursive: true)
232 .where((entry) => entry.path.endsWith('.dart'))
233 .map((entry) => entry.path)
234 .toList();
235 }
207 236
208 var unit = new BuildUnit( 237 var unit =
209 packageName, 238 new BuildUnit(packageName, packageInputDir, files, _moduleForLibrary);
210 packageInputDir,
211 files
212 .where((entry) => entry.path.endsWith('dart'))
213 .map((entry) => entry.path)
214 .toList(),
215 _moduleForLibrary);
216 var module = compiler.compile(unit, options); 239 var module = compiler.compile(unit, options);
217 240
218 var outPath = path.join(expectDir, packageName, packageName); 241 var outPath = path.join(expectDir, packageName, packageName);
219 _writeModule(outPath, module); 242 _writeModule(outPath, module);
220 } 243 }
221 244
222 String _moduleForLibrary(Source source) { 245 String _moduleForLibrary(Source source) {
223 var scheme = source.uri.scheme; 246 var scheme = source.uri.scheme;
224 if (scheme == 'package') { 247 if (scheme == 'package') {
225 return source.uri.pathSegments.first; 248 return source.uri.pathSegments.first;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 /// Simplified from ParseDartTask.resolveDirective. 342 /// Simplified from ParseDartTask.resolveDirective.
320 String _resolveDirective(UriBasedDirective directive) { 343 String _resolveDirective(UriBasedDirective directive) {
321 StringLiteral uriLiteral = directive.uri; 344 StringLiteral uriLiteral = directive.uri;
322 String uriContent = uriLiteral.stringValue; 345 String uriContent = uriLiteral.stringValue;
323 if (uriContent != null) { 346 if (uriContent != null) {
324 uriContent = uriContent.trim(); 347 uriContent = uriContent.trim();
325 directive.uriContent = uriContent; 348 directive.uriContent = uriContent;
326 } 349 }
327 return directive.validate() == null ? uriContent : null; 350 return directive.validate() == null ? uriContent : null;
328 } 351 }
OLDNEW
« no previous file with comments | « pubspec.yaml ('k') | tool/build_sdk.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698