Chromium Code Reviews

Side by Side Diff: sdk/lib/_internal/pub_generated/test/dependency_computer/utils.dart

Issue 599993004: Don't load transformers that aren't going to be used for an executable. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | Annotate | Revision Log
OLDNEW
1 library pub_tests; 1 library pub_tests;
2 import 'package:barback/barback.dart';
2 import 'package:path/path.dart' as p; 3 import 'package:path/path.dart' as p;
3 import 'package:scheduled_test/scheduled_test.dart'; 4 import 'package:scheduled_test/scheduled_test.dart';
4 import '../../lib/src/barback/cycle_exception.dart'; 5 import '../../lib/src/barback/cycle_exception.dart';
5 import '../../lib/src/barback/transformers_needed_by_transformers.dart'; 6 import '../../lib/src/barback/dependency_computer.dart';
6 import '../../lib/src/entrypoint.dart'; 7 import '../../lib/src/entrypoint.dart';
7 import '../../lib/src/io.dart'; 8 import '../../lib/src/io.dart';
8 import '../../lib/src/package.dart'; 9 import '../../lib/src/package.dart';
9 import '../../lib/src/package_graph.dart'; 10 import '../../lib/src/package_graph.dart';
10 import '../../lib/src/source/path.dart'; 11 import '../../lib/src/source/path.dart';
11 import '../../lib/src/system_cache.dart'; 12 import '../../lib/src/system_cache.dart';
12 import '../../lib/src/utils.dart'; 13 import '../../lib/src/utils.dart';
13 import '../test_pub.dart'; 14 import '../test_pub.dart';
14 void expectDependencies(Map<String, Iterable<String>> expected) { 15 void expectDependencies(Map<String, Iterable<String>> expected) {
15 expected = mapMap(expected, value: (_, ids) => ids.toSet()); 16 expected = mapMap(expected, value: (_, ids) => ids.toSet());
16 schedule(() { 17 schedule(() {
18 var computer = new DependencyComputer(_loadPackageGraph());
17 var result = mapMap( 19 var result = mapMap(
18 computeTransformersNeededByTransformers(_loadPackageGraph()), 20 computer.transformersNeededByTransformers(),
19 key: (id, _) => id.toString(), 21 key: (id, _) => id.toString(),
20 value: (_, ids) => ids.map((id) => id.toString()).toSet()); 22 value: (_, ids) => ids.map((id) => id.toString()).toSet());
21 expect(result, equals(expected)); 23 expect(result, equals(expected));
22 }, "expect dependencies to match $expected"); 24 }, "expect dependencies to match $expected");
23 } 25 }
24 void expectException(matcher) { 26 void expectException(matcher) {
25 schedule(() { 27 schedule(() {
26 expect( 28 expect(() {
27 () => computeTransformersNeededByTransformers(_loadPackageGraph()), 29 var computer = new DependencyComputer(_loadPackageGraph());
28 throwsA(matcher)); 30 computer.transformersNeededByTransformers();
31 }, throwsA(matcher));
29 }, "expect an exception: $matcher"); 32 }, "expect an exception: $matcher");
30 } 33 }
31 void expectCycleException(Iterable<String> steps) { 34 void expectCycleException(Iterable<String> steps) {
32 expectException(predicate((error) { 35 expectException(predicate((error) {
33 expect(error, new isInstanceOf<CycleException>()); 36 expect(error, new isInstanceOf<CycleException>());
34 expect(error.steps, equals(steps)); 37 expect(error.steps, equals(steps));
35 return true; 38 return true;
36 }, "cycle exception:\n${steps.map((step) => " $step").join("\n")}")); 39 }, "cycle exception:\n${steps.map((step) => " $step").join("\n")}"));
37 } 40 }
41 void expectLibraryDependencies(String id, Iterable<String> expected) {
42 expected = expected.toSet();
43 schedule(() {
44 var computer = new DependencyComputer(_loadPackageGraph());
45 var result = computer.transformersNeededByLibrary(
46 new AssetId.parse(id)).map((id) => id.toString()).toSet();
47 expect(result, equals(expected));
48 }, "expect dependencies to match $expected");
49 }
38 PackageGraph _loadPackageGraph() { 50 PackageGraph _loadPackageGraph() {
39 var packages = {}; 51 var packages = {};
40 var systemCache = new SystemCache(p.join(sandboxDir, cachePath)); 52 var systemCache = new SystemCache(p.join(sandboxDir, cachePath));
41 systemCache.sources 53 systemCache.sources
42 ..register(new PathSource()) 54 ..register(new PathSource())
43 ..setDefault('path'); 55 ..setDefault('path');
44 var entrypoint = new Entrypoint(p.join(sandboxDir, appPath), systemCache); 56 var entrypoint = new Entrypoint(p.join(sandboxDir, appPath), systemCache);
45 for (var package in listDir(sandboxDir)) { 57 for (var package in listDir(sandboxDir)) {
46 if (!fileExists(p.join(package, 'pubspec.yaml'))) continue; 58 if (!fileExists(p.join(package, 'pubspec.yaml'))) continue;
47 var packageName = p.basename(package); 59 var packageName = p.basename(package);
(...skipping 21 matching lines...)
69 buffer.writeln('import "$import";'); 81 buffer.writeln('import "$import";');
70 } 82 }
71 buffer.writeln(""" 83 buffer.writeln("""
72 NoOpTransformer extends Transformer { 84 NoOpTransformer extends Transformer {
73 bool isPrimary(AssetId id) => true; 85 bool isPrimary(AssetId id) => true;
74 void apply(Transform transform) {} 86 void apply(Transform transform) {}
75 } 87 }
76 """); 88 """);
77 return buffer.toString(); 89 return buffer.toString();
78 } 90 }
OLDNEW

Powered by Google App Engine