| OLD | NEW |
| 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 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 'foo 4.0.0': {'bar': '4.0.0'}, | 787 'foo 4.0.0': {'bar': '4.0.0'}, |
| 788 'bar 1.0.0': {'sdk': goodVersion }, | 788 'bar 1.0.0': {'sdk': goodVersion }, |
| 789 'bar 2.0.0': {'sdk': goodVersion }, | 789 'bar 2.0.0': {'sdk': goodVersion }, |
| 790 'bar 3.0.0': {'sdk': badVersion }, | 790 'bar 3.0.0': {'sdk': badVersion }, |
| 791 'bar 4.0.0': {'sdk': badVersion } | 791 'bar 4.0.0': {'sdk': badVersion } |
| 792 }, result: { | 792 }, result: { |
| 793 'myapp from root': '0.0.0', | 793 'myapp from root': '0.0.0', |
| 794 'foo': '2.0.0', | 794 'foo': '2.0.0', |
| 795 'bar': '2.0.0' | 795 'bar': '2.0.0' |
| 796 }, maxTries: 3); | 796 }, maxTries: 3); |
| 797 |
| 798 testResolve('ignores SDK constraints on bleeding edge', { |
| 799 'myapp 0.0.0': {'sdk': badVersion } |
| 800 }, result: { |
| 801 'myapp from root': '0.0.0' |
| 802 }, useBleedingEdgeSdkVersion: true); |
| 797 } | 803 } |
| 798 | 804 |
| 799 void prerelease() { | 805 void prerelease() { |
| 800 testResolve('prefer stable versions over unstable', { | 806 testResolve('prefer stable versions over unstable', { |
| 801 'myapp 0.0.0': { | 807 'myapp 0.0.0': { |
| 802 'a': 'any' | 808 'a': 'any' |
| 803 }, | 809 }, |
| 804 'a 1.0.0': {}, | 810 'a 1.0.0': {}, |
| 805 'a 1.1.0-dev': {}, | 811 'a 1.1.0-dev': {}, |
| 806 'a 2.0.0-dev': {}, | 812 'a 2.0.0-dev': {}, |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 976 }, overrides: { | 982 }, overrides: { |
| 977 'foo': 'any' | 983 'foo': 'any' |
| 978 }, result: { | 984 }, result: { |
| 979 'myapp from root': '0.0.0', | 985 'myapp from root': '0.0.0', |
| 980 'foo': '0.0.0' | 986 'foo': '0.0.0' |
| 981 }); | 987 }); |
| 982 } | 988 } |
| 983 | 989 |
| 984 testResolve(String description, Map packages, { | 990 testResolve(String description, Map packages, { |
| 985 Map lockfile, Map overrides, Map result, FailMatcherBuilder error, | 991 Map lockfile, Map overrides, Map result, FailMatcherBuilder error, |
| 986 int maxTries}) { | 992 int maxTries, bool useBleedingEdgeSdkVersion}) { |
| 987 _testResolve(test, description, packages, lockfile: lockfile, | 993 _testResolve(test, description, packages, lockfile: lockfile, |
| 988 overrides: overrides, result: result, error: error, maxTries: maxTries); | 994 overrides: overrides, result: result, error: error, maxTries: maxTries, |
| 995 useBleedingEdgeSdkVersion: useBleedingEdgeSdkVersion); |
| 989 } | 996 } |
| 990 | 997 |
| 991 solo_testResolve(String description, Map packages, { | 998 solo_testResolve(String description, Map packages, { |
| 992 Map lockfile, Map overrides, Map result, FailMatcherBuilder error, | 999 Map lockfile, Map overrides, Map result, FailMatcherBuilder error, |
| 993 int maxTries}) { | 1000 int maxTries, bool useBleedingEdgeSdkVersion}) { |
| 994 log.showSolver(); | 1001 log.showSolver(); |
| 995 _testResolve(solo_test, description, packages, lockfile: lockfile, | 1002 _testResolve(solo_test, description, packages, lockfile: lockfile, |
| 996 overrides: overrides, result: result, error: error, maxTries: maxTries); | 1003 overrides: overrides, result: result, error: error, maxTries: maxTries, |
| 1004 useBleedingEdgeSdkVersion: useBleedingEdgeSdkVersion); |
| 997 } | 1005 } |
| 998 | 1006 |
| 999 _testResolve(void testFn(String description, Function body), | 1007 _testResolve(void testFn(String description, Function body), |
| 1000 String description, Map packages, { | 1008 String description, Map packages, { |
| 1001 Map lockfile, Map overrides, Map result, FailMatcherBuilder error, | 1009 Map lockfile, Map overrides, Map result, FailMatcherBuilder error, |
| 1002 int maxTries}) { | 1010 int maxTries, bool useBleedingEdgeSdkVersion}) { |
| 1003 if (maxTries == null) maxTries = 1; | 1011 if (maxTries == null) maxTries = 1; |
| 1012 if (useBleedingEdgeSdkVersion == null) useBleedingEdgeSdkVersion = false; |
| 1004 | 1013 |
| 1005 testFn(description, () { | 1014 testFn(description, () { |
| 1006 var cache = new SystemCache('.'); | 1015 var cache = new SystemCache('.'); |
| 1007 source1 = new MockSource('mock1'); | 1016 source1 = new MockSource('mock1'); |
| 1008 source2 = new MockSource('mock2'); | 1017 source2 = new MockSource('mock2'); |
| 1009 cache.register(source1); | 1018 cache.register(source1); |
| 1010 cache.register(source2); | 1019 cache.register(source2); |
| 1011 cache.sources.setDefault(source1.name); | 1020 cache.sources.setDefault(source1.name); |
| 1012 | 1021 |
| 1013 // Build the test package graph. | 1022 // Build the test package graph. |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1040 // Parse the lockfile. | 1049 // Parse the lockfile. |
| 1041 var realLockFile = new LockFile.empty(); | 1050 var realLockFile = new LockFile.empty(); |
| 1042 if (lockfile != null) { | 1051 if (lockfile != null) { |
| 1043 lockfile.forEach((name, version) { | 1052 lockfile.forEach((name, version) { |
| 1044 version = new Version.parse(version); | 1053 version = new Version.parse(version); |
| 1045 realLockFile.packages[name] = | 1054 realLockFile.packages[name] = |
| 1046 new PackageId(name, source1.name, version, name); | 1055 new PackageId(name, source1.name, version, name); |
| 1047 }); | 1056 }); |
| 1048 } | 1057 } |
| 1049 | 1058 |
| 1059 // Make a version number like the continuous build's version. |
| 1060 var previousVersion = sdk.version; |
| 1061 if (useBleedingEdgeSdkVersion) { |
| 1062 sdk.version = new Version(0, 1, 2, build: '0_r12345_juser'); |
| 1063 } |
| 1064 |
| 1050 // Resolve the versions. | 1065 // Resolve the versions. |
| 1051 var future = resolveVersions(cache.sources, root, lockFile: realLockFile); | 1066 var future = resolveVersions(cache.sources, root, lockFile: realLockFile); |
| 1052 | 1067 |
| 1053 var matcher; | 1068 var matcher; |
| 1054 if (result != null) { | 1069 if (result != null) { |
| 1055 matcher = new SolveSuccessMatcher(result, maxTries); | 1070 matcher = new SolveSuccessMatcher(result, maxTries); |
| 1056 } else if (error != null) { | 1071 } else if (error != null) { |
| 1057 matcher = error(maxTries); | 1072 matcher = error(maxTries); |
| 1058 } | 1073 } |
| 1059 | 1074 |
| 1075 future = future.whenComplete(() { |
| 1076 if (useBleedingEdgeSdkVersion) { |
| 1077 sdk.version = previousVersion; |
| 1078 } |
| 1079 }); |
| 1080 |
| 1060 expect(future, completion(matcher)); | 1081 expect(future, completion(matcher)); |
| 1061 }); | 1082 }); |
| 1062 } | 1083 } |
| 1063 | 1084 |
| 1064 typedef SolveFailMatcher FailMatcherBuilder(int maxTries); | 1085 typedef SolveFailMatcher FailMatcherBuilder(int maxTries); |
| 1065 | 1086 |
| 1066 FailMatcherBuilder noVersion(List<String> packages) { | 1087 FailMatcherBuilder noVersion(List<String> packages) { |
| 1067 return (maxTries) => new SolveFailMatcher(packages, maxTries, | 1088 return (maxTries) => new SolveFailMatcher(packages, maxTries, |
| 1068 NoVersionException); | 1089 NoVersionException); |
| 1069 } | 1090 } |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1385 } | 1406 } |
| 1386 | 1407 |
| 1387 var source = "mock1"; | 1408 var source = "mock1"; |
| 1388 if (match[7] != null) { | 1409 if (match[7] != null) { |
| 1389 source = match[7]; | 1410 source = match[7]; |
| 1390 if (source == "root") source = null; | 1411 if (source == "root") source = null; |
| 1391 } | 1412 } |
| 1392 | 1413 |
| 1393 return new PackageId(name, source, parsedVersion, description); | 1414 return new PackageId(name, source, parsedVersion, description); |
| 1394 } | 1415 } |
| OLD | NEW |