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

Side by Side Diff: sdk/lib/_internal/pub/test/version_solver_test.dart

Issue 74013007: Hook up dependency overrides to the rest of pub. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Revise. Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « sdk/lib/_internal/pub/test/validator/dependency_override_test.dart ('k') | no next file » | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 library pub_upgrade_test; 5 library pub_upgrade_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 10
(...skipping 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 source1 = new MockSource('mock1'); 1016 source1 = new MockSource('mock1');
1017 source2 = new MockSource('mock2'); 1017 source2 = new MockSource('mock2');
1018 cache.register(source1); 1018 cache.register(source1);
1019 cache.register(source2); 1019 cache.register(source2);
1020 cache.sources.setDefault(source1.name); 1020 cache.sources.setDefault(source1.name);
1021 1021
1022 // Build the test package graph. 1022 // Build the test package graph.
1023 var root; 1023 var root;
1024 packages.forEach((description, dependencies) { 1024 packages.forEach((description, dependencies) {
1025 var id = parseSpec(description); 1025 var id = parseSpec(description);
1026 var package = mockPackage(id, dependencies); 1026 var package = mockPackage(id, dependencies,
1027 id.name == 'myapp' ? overrides : null);
1027 if (id.name == 'myapp') { 1028 if (id.name == 'myapp') {
1028 // Don't add the root package to the server, so we can verify that Pub 1029 // Don't add the root package to the server, so we can verify that Pub
1029 // doesn't try to look up information about the local package on the 1030 // doesn't try to look up information about the local package on the
1030 // remote server. 1031 // remote server.
1031 root = package; 1032 root = package;
1032 } else { 1033 } else {
1033 (cache.sources[id.source] as MockSource).addPackage( 1034 (cache.sources[id.source] as MockSource).addPackage(
1034 id.description, package); 1035 id.description, package);
1035 } 1036 }
1036 }); 1037 });
(...skipping 11 matching lines...) Expand all
1048 // Parse the lockfile. 1049 // Parse the lockfile.
1049 var realLockFile = new LockFile.empty(); 1050 var realLockFile = new LockFile.empty();
1050 if (lockfile != null) { 1051 if (lockfile != null) {
1051 lockfile.forEach((name, version) { 1052 lockfile.forEach((name, version) {
1052 version = new Version.parse(version); 1053 version = new Version.parse(version);
1053 realLockFile.packages[name] = 1054 realLockFile.packages[name] =
1054 new PackageId(name, source1.name, version, name); 1055 new PackageId(name, source1.name, version, name);
1055 }); 1056 });
1056 } 1057 }
1057 1058
1058 // Parse the overrides.
1059 var realOverrides = [];
1060 if (overrides != null) {
1061 overrides.forEach((spec, constraint) {
1062 realOverrides.add(parseSpec(spec).withConstraint(
1063 new VersionConstraint.parse(constraint)));
1064 });
1065 }
1066
1067 // Make a version number like the continuous build's version. 1059 // Make a version number like the continuous build's version.
1068 var previousVersion = sdk.version; 1060 var previousVersion = sdk.version;
1069 if (useBleedingEdgeSdkVersion) { 1061 if (useBleedingEdgeSdkVersion) {
1070 sdk.version = new Version(0, 1, 2, build: '0_r12345_juser'); 1062 sdk.version = new Version(0, 1, 2, build: '0_r12345_juser');
1071 } 1063 }
1072 1064
1073 // Resolve the versions. 1065 // Resolve the versions.
1074 var future = resolveVersions(cache.sources, root, 1066 var future = resolveVersions(cache.sources, root, lockFile: realLockFile);
1075 lockFile: realLockFile, overrides: realOverrides);
1076 1067
1077 var matcher; 1068 var matcher;
1078 if (result != null) { 1069 if (result != null) {
1079 matcher = new SolveSuccessMatcher(result, maxTries); 1070 matcher = new SolveSuccessMatcher(result, maxTries);
1080 } else if (error != null) { 1071 } else if (error != null) {
1081 matcher = error(maxTries); 1072 matcher = error(maxTries);
1082 } 1073 }
1083 1074
1084 future = future.whenComplete(() { 1075 future = future.whenComplete(() {
1085 if (useBleedingEdgeSdkVersion) { 1076 if (useBleedingEdgeSdkVersion) {
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 Future<bool> get(PackageId id, String path) { 1315 Future<bool> get(PackageId id, String path) {
1325 throw new Exception('no'); 1316 throw new Exception('no');
1326 } 1317 }
1327 1318
1328 void addPackage(String description, Package package) { 1319 void addPackage(String description, Package package) {
1329 _packages.putIfAbsent(description, () => new Map<Version, Package>()); 1320 _packages.putIfAbsent(description, () => new Map<Version, Package>());
1330 _packages[description][package.version] = package; 1321 _packages[description][package.version] = package;
1331 } 1322 }
1332 } 1323 }
1333 1324
1334 Package mockPackage(PackageId id, Map dependencyStrings) { 1325 Package mockPackage(PackageId id, Map dependencyStrings, Map overrides) {
1335 var sdkConstraint = null; 1326 var sdkConstraint = null;
1336 1327
1337 // Build the pubspec dependencies. 1328 // Build the pubspec dependencies.
1338 var dependencies = <PackageDep>[]; 1329 var dependencies = <PackageDep>[];
1339 var devDependencies = <PackageDep>[]; 1330 var devDependencies = <PackageDep>[];
1340 1331
1341 dependencyStrings.forEach((description, constraint) { 1332 dependencyStrings.forEach((spec, constraint) {
1342 var isDev = description.startsWith("(dev) "); 1333 var isDev = spec.startsWith("(dev) ");
1343 if (isDev) { 1334 if (isDev) {
1344 description = description.substring("(dev) ".length); 1335 spec = spec.substring("(dev) ".length);
1345 } 1336 }
1346 1337
1347 var dep = parseSpec(description).withConstraint( 1338 var dep = parseSpec(spec).withConstraint(
1348 new VersionConstraint.parse(constraint)); 1339 new VersionConstraint.parse(constraint));
1349 1340
1350 if (dep.name == 'sdk') { 1341 if (dep.name == 'sdk') {
1351 sdkConstraint = dep.constraint; 1342 sdkConstraint = dep.constraint;
1352 return; 1343 return;
1353 } 1344 }
1354 1345
1355 if (isDev) { 1346 if (isDev) {
1356 devDependencies.add(dep); 1347 devDependencies.add(dep);
1357 } else { 1348 } else {
1358 dependencies.add(dep); 1349 dependencies.add(dep);
1359 } 1350 }
1360 }); 1351 });
1361 1352
1353 var dependencyOverrides = <PackageDep>[];
1354 if (overrides != null) {
1355 overrides.forEach((spec, constraint) {
1356 dependencyOverrides.add(parseSpec(spec).withConstraint(
1357 new VersionConstraint.parse(constraint)));
1358 });
1359 }
1360
1362 var pubspec = new Pubspec(id.name, id.version, dependencies, 1361 var pubspec = new Pubspec(id.name, id.version, dependencies,
1363 devDependencies, new PubspecEnvironment(sdkConstraint), []); 1362 devDependencies, dependencyOverrides,
1363 new PubspecEnvironment(sdkConstraint), []);
1364 return new Package.inMemory(pubspec); 1364 return new Package.inMemory(pubspec);
1365 } 1365 }
1366 1366
1367 /// Creates a new [PackageId] parsed from [text], which looks something like 1367 /// Creates a new [PackageId] parsed from [text], which looks something like
1368 /// this: 1368 /// this:
1369 /// 1369 ///
1370 /// foo-xyz 1.0.0 from mock 1370 /// foo-xyz 1.0.0 from mock
1371 /// 1371 ///
1372 /// The package name is "foo". A hyphenated suffix like "-xyz" here is part 1372 /// The package name is "foo". A hyphenated suffix like "-xyz" here is part
1373 /// of the package description, but not its name, so the description here is 1373 /// of the package description, but not its name, so the description here is
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 } 1406 }
1407 1407
1408 var source = "mock1"; 1408 var source = "mock1";
1409 if (match[7] != null) { 1409 if (match[7] != null) {
1410 source = match[7]; 1410 source = match[7];
1411 if (source == "root") source = null; 1411 if (source == "root") source = null;
1412 } 1412 }
1413 1413
1414 return new PackageId(name, source, parsedVersion, description); 1414 return new PackageId(name, source, parsedVersion, description);
1415 } 1415 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub/test/validator/dependency_override_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698