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

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

Issue 64213004: Prefer stable versions over pre-release versions in the solver. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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/lib/src/solver/version_solver.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 22 matching lines...) Expand all
33 sdk.version = new Version(1, 2, 3); 33 sdk.version = new Version(1, 2, 3);
34 34
35 group('basic graph', basicGraph); 35 group('basic graph', basicGraph);
36 group('with lockfile', withLockFile); 36 group('with lockfile', withLockFile);
37 group('root dependency', rootDependency); 37 group('root dependency', rootDependency);
38 group('dev dependency', devDependency); 38 group('dev dependency', devDependency);
39 group('unsolvable', unsolvable); 39 group('unsolvable', unsolvable);
40 group('bad source', badSource); 40 group('bad source', badSource);
41 group('backtracking', backtracking); 41 group('backtracking', backtracking);
42 group('SDK constraint', sdkConstraint); 42 group('SDK constraint', sdkConstraint);
43 group('pre-release', prerelease);
43 } 44 }
44 45
45 void basicGraph() { 46 void basicGraph() {
46 testResolve('no dependencies', { 47 testResolve('no dependencies', {
47 'myapp 0.0.0': {} 48 'myapp 0.0.0': {}
48 }, result: { 49 }, result: {
49 'myapp from root': '0.0.0' 50 'myapp from root': '0.0.0'
50 }); 51 });
51 52
52 testResolve('simple dependency tree', { 53 testResolve('simple dependency tree', {
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 'bar': '2.0.0' 794 'bar': '2.0.0'
794 }, maxTries: 3); 795 }, maxTries: 3);
795 796
796 testResolve('ignores SDK constraints on bleeding edge', { 797 testResolve('ignores SDK constraints on bleeding edge', {
797 'myapp 0.0.0': {'sdk': badVersion } 798 'myapp 0.0.0': {'sdk': badVersion }
798 }, result: { 799 }, result: {
799 'myapp from root': '0.0.0' 800 'myapp from root': '0.0.0'
800 }, useBleedingEdgeSdkVersion: true); 801 }, useBleedingEdgeSdkVersion: true);
801 } 802 }
802 803
804 void prerelease() {
805 testResolve('prefer stable versions over unstable', {
806 'myapp 0.0.0': {
807 'a': 'any'
808 },
809 'a 1.0.0': {},
810 'a 1.1.0-dev': {},
811 'a 2.0.0-dev': {},
812 'a 3.0.0-dev': {}
813 }, result: {
814 'myapp from root': '0.0.0',
815 'a': '1.0.0'
816 });
817
818 testResolve('use latest allowed prerelease if no stable versions match', {
819 'myapp 0.0.0': {
820 'a': '<2.0.0'
821 },
822 'a 1.0.0-dev': {},
823 'a 1.1.0-dev': {},
824 'a 2.0.0-dev': {},
825 'a 3.0.0': {}
826 }, result: {
827 'myapp from root': '0.0.0',
828 'a': '2.0.0-dev'
829 });
830
831 testResolve('use an earlier stable version on a < constraint', {
832 'myapp 0.0.0': {
833 'a': '<2.0.0'
834 },
835 'a 1.0.0': {},
836 'a 1.1.0': {},
837 'a 2.0.0-dev': {},
838 'a 2.0.0': {}
839 }, result: {
840 'myapp from root': '0.0.0',
841 'a': '1.1.0'
842 });
843
844 testResolve('prefer a stable version even if constraint mentions unstable', {
845 'myapp 0.0.0': {
846 'a': '<=2.0.0-dev'
847 },
848 'a 1.0.0': {},
849 'a 1.1.0': {},
850 'a 2.0.0-dev': {},
851 'a 2.0.0': {}
852 }, result: {
853 'myapp from root': '0.0.0',
854 'a': '1.1.0'
855 });
856 }
857
803 testResolve(description, packages, { 858 testResolve(description, packages, {
804 lockfile, result, FailMatcherBuilder error, int maxTries, 859 lockfile, result, FailMatcherBuilder error, int maxTries,
805 bool useBleedingEdgeSdkVersion}) { 860 bool useBleedingEdgeSdkVersion}) {
806 _testResolve(test, description, packages, lockfile: lockfile, result: result, 861 _testResolve(test, description, packages, lockfile: lockfile, result: result,
807 error: error, maxTries: maxTries, 862 error: error, maxTries: maxTries,
808 useBleedingEdgeSdkVersion: useBleedingEdgeSdkVersion); 863 useBleedingEdgeSdkVersion: useBleedingEdgeSdkVersion);
809 } 864 }
810 865
811 solo_testResolve(description, packages, { 866 solo_testResolve(description, packages, {
812 lockfile, result, FailMatcherBuilder error, int maxTries, 867 lockfile, result, FailMatcherBuilder error, int maxTries,
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
1188 var source = "mock1"; 1243 var source = "mock1";
1189 var match = new RegExp(r"(.*) from (.*)").firstMatch(description); 1244 var match = new RegExp(r"(.*) from (.*)").firstMatch(description);
1190 if (match != null) { 1245 if (match != null) {
1191 name = match[1]; 1246 name = match[1];
1192 source = match[2]; 1247 source = match[2];
1193 if (source == "root") source = null; 1248 if (source == "root") source = null;
1194 } 1249 }
1195 1250
1196 callback(isDev, name, source); 1251 callback(isDev, name, source);
1197 } 1252 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub/lib/src/solver/version_solver.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698