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

Unified Diff: test/codegen_test.dart

Issue 2234343003: fix #620, infer the input files from sources (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: fix Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: test/codegen_test.dart
diff --git a/test/codegen_test.dart b/test/codegen_test.dart
index 973bd27e1954de021c41db70b845d4d8f470a380..cad3b32f2c250e145ade86eba84cb0545479ba37 100644
--- a/test/codegen_test.dart
+++ b/test/codegen_test.dart
@@ -16,7 +16,7 @@ import 'dart:convert' show JSON;
import 'dart:io' show Directory, File, Platform;
import 'package:args/args.dart' show ArgParser, ArgResults;
import 'package:path/path.dart' as path;
-import 'package:test/test.dart' show group, test;
+import 'package:test/test.dart' show test;
import 'package:analyzer/analyzer.dart'
show
@@ -56,14 +56,6 @@ final codegenTestDir = path.join(repoDirectory, 'gen', 'codegen_tests');
/// output.
final codegenOutputDir = path.join(repoDirectory, 'gen', 'codegen_output');
-// TODO(jmesserly): switch this to a .packages file.
-final packageUrlMappings = {
- 'package:expect/expect.dart': path.join(codegenDir, 'expect.dart'),
- 'package:async_helper/async_helper.dart':
- path.join(codegenDir, 'async_helper.dart'),
- 'package:js/js.dart': path.join(codegenDir, 'packages', 'js', 'js.dart')
-};
-
final codeCoverage = Platform.environment.containsKey('COVERALLS_TOKEN');
RegExp filePattern;
@@ -76,14 +68,17 @@ main(List<String> arguments) {
var sdkDir = path.join(repoDirectory, 'gen', 'patched_sdk');
var sdkSummaryFile =
path.join(testDirectory, '..', 'lib', 'runtime', 'dart_sdk.sum');
+
+ var summaryPaths = new Directory(path.join(codegenOutputDir, 'pkg'))
+ .listSync()
+ .map((e) => e.path)
+ .where((p) => p.endsWith('.sum'))
+ .toList();
+
var analyzerOptions = new AnalyzerOptions(
- customUrlMappings: packageUrlMappings,
- dartSdkSummaryPath: sdkSummaryFile);
+ dartSdkSummaryPath: sdkSummaryFile, summaryPaths: summaryPaths);
var compiler = new ModuleCompiler(analyzerOptions);
- // Build packages tests depend on.
- _buildAllPackages(compiler);
-
var testDirs = [
'language',
'corelib',
@@ -141,6 +136,10 @@ main(List<String> arguments) {
});
}
+ if (filePattern.hasMatch('sunflower')) {
+ _buildSunflower(compiler, codegenOutputDir, codegenExpectDir);
+ }
+
if (codeCoverage) {
test('build_sdk code coverage', () {
return build_sdk.main(['--dart-sdk', sdkDir, '-o', codegenOutputDir]);
@@ -157,11 +156,15 @@ void _writeModule(String outPath, String expectPath, JSModuleFile result) {
new File(outPath + '.txt').writeAsStringSync(errors);
var jsFile = new File(outPath + '.js');
+ var summaryFile = new File(outPath + '.sum');
var expectFile = new File(expectPath + '.js');
var errorFile = new File(outPath + '.err');
if (result.isValid) {
jsFile.writeAsStringSync(result.code);
+ if (result.summaryBytes != null) {
+ summaryFile.writeAsBytesSync(result.summaryBytes);
+ }
if (result.sourceMap != null) {
var mapPath = outPath + '.js.map';
new File(mapPath)
@@ -207,40 +210,6 @@ dart_library.library('$moduleName', null, [
}
}
-void _buildAllPackages(ModuleCompiler compiler) {
- group('dartdevc package', () {
- _buildPackages(compiler, codegenOutputDir, codegenExpectDir);
-
- var packages = ['matcher', 'path', 'stack_trace'];
- for (var package in packages) {
- if (!filePattern.hasMatch(package)) continue;
- test(package, () {
- _buildPackage(compiler, codegenOutputDir, codegenExpectDir, package);
- });
- }
-
- if (!filePattern.hasMatch('unittest')) return;
-
- test('unittest', () {
- // Only build files applicable to the web - html_*.dart and its
- // internal dependences.
- _buildPackage(compiler, codegenOutputDir, codegenExpectDir, "unittest",
- packageFiles: [
- 'unittest.dart',
- 'html_config.dart',
- 'html_individual_config.dart',
- 'html_enhanced_config.dart'
- ]);
- });
- });
-
- if (!filePattern.hasMatch('sunflower')) return;
-
- test('dartdevc sunflower', () {
- _buildSunflower(compiler, codegenOutputDir, codegenExpectDir);
- });
-}
-
void _buildSunflower(
ModuleCompiler compiler, String outputDir, String expectDir) {
var baseDir = path.join(codegenDir, 'sunflower');
@@ -255,65 +224,6 @@ void _buildSunflower(
path.join(expectDir, 'sunflower', 'sunflower'), built);
}
-void _buildPackages(
- ModuleCompiler compiler, String outputDir, String expectDir) {
- // Note: we don't summarize these, as we're going to rely on our in-memory
- // shared analysis context for caching, and `_moduleForLibrary` below
- // understands these are from other modules.
- var options = new CompilerOptions(sourceMap: false, summarizeApi: false);
-
- for (var uri in packageUrlMappings.keys) {
- if (!filePattern.hasMatch(uri)) return;
-
- assert(uri.startsWith('package:'));
- var uriPath = uri.substring('package:'.length);
- var name = path.basenameWithoutExtension(uriPath);
- test(name, () {
- var input = new BuildUnit(name, codegenDir, [uri], _moduleForLibrary);
- var built = compiler.compile(input, options);
-
- var outPath = path.join(outputDir, path.withoutExtension(uriPath));
- var expectPath = path.join(expectDir, path.withoutExtension(uriPath));
- _writeModule(outPath, expectPath, built);
- });
- }
-}
-
-void _buildPackage(
- ModuleCompiler compiler, String outputDir, String expectDir, packageName,
- {List<String> packageFiles}) {
- var options = new CompilerOptions(sourceMap: false, summarizeApi: false);
-
- var packageRoot = path.join(codegenDir, 'packages');
- var packageInputDir = path.join(packageRoot, packageName);
- List<String> files;
- if (packageFiles != null) {
- // Only collect files transitively reachable from packageFiles.
- var reachable = new Set<String>();
- for (var file in packageFiles) {
- file = path.join(packageInputDir, file);
- _collectTransitiveImports(new File(file).readAsStringSync(), reachable,
- packageRoot: packageRoot, from: file);
- }
- files = reachable.toList();
- } else {
- // Collect all files in the packages directory.
- files = new Directory(packageInputDir)
- .listSync(recursive: true)
- .where((entry) => entry.path.endsWith('.dart'))
- .map((entry) => entry.path)
- .toList();
- }
-
- var unit =
- new BuildUnit(packageName, packageInputDir, files, _moduleForLibrary);
- var module = compiler.compile(unit, options);
-
- var outPath = path.join(outputDir, packageName, packageName);
- var expectPath = path.join(expectDir, packageName, packageName);
- _writeModule(outPath, expectPath, module);
-}
-
String _moduleForLibrary(Source source) {
var scheme = source.uri.scheme;
if (scheme == 'package') {

Powered by Google App Engine
This is Rietveld 408576698