| Index: sdk/lib/_internal/pub/test/version_solver_test.dart
|
| diff --git a/sdk/lib/_internal/pub/test/version_solver_test.dart b/sdk/lib/_internal/pub/test/version_solver_test.dart
|
| index ae2a8a9ba8771c22d3114ba3e9145d4f448fffca..f3a4d9214cff63c4101a74614b7d7e54c036d697 100644
|
| --- a/sdk/lib/_internal/pub/test/version_solver_test.dart
|
| +++ b/sdk/lib/_internal/pub/test/version_solver_test.dart
|
| @@ -40,6 +40,7 @@ main() {
|
| group('bad source', badSource);
|
| group('backtracking', backtracking);
|
| group('SDK constraint', sdkConstraint);
|
| + group('pre-release', prerelease);
|
| }
|
|
|
| void basicGraph() {
|
| @@ -800,6 +801,60 @@ sdkConstraint() {
|
| }, useBleedingEdgeSdkVersion: true);
|
| }
|
|
|
| +void prerelease() {
|
| + testResolve('prefer stable versions over unstable', {
|
| + 'myapp 0.0.0': {
|
| + 'a': 'any'
|
| + },
|
| + 'a 1.0.0': {},
|
| + 'a 1.1.0-dev': {},
|
| + 'a 2.0.0-dev': {},
|
| + 'a 3.0.0-dev': {}
|
| + }, result: {
|
| + 'myapp from root': '0.0.0',
|
| + 'a': '1.0.0'
|
| + });
|
| +
|
| + testResolve('use latest allowed prerelease if no stable versions match', {
|
| + 'myapp 0.0.0': {
|
| + 'a': '<2.0.0'
|
| + },
|
| + 'a 1.0.0-dev': {},
|
| + 'a 1.1.0-dev': {},
|
| + 'a 2.0.0-dev': {},
|
| + 'a 3.0.0': {}
|
| + }, result: {
|
| + 'myapp from root': '0.0.0',
|
| + 'a': '2.0.0-dev'
|
| + });
|
| +
|
| + testResolve('use an earlier stable version on a < constraint', {
|
| + 'myapp 0.0.0': {
|
| + 'a': '<2.0.0'
|
| + },
|
| + 'a 1.0.0': {},
|
| + 'a 1.1.0': {},
|
| + 'a 2.0.0-dev': {},
|
| + 'a 2.0.0': {}
|
| + }, result: {
|
| + 'myapp from root': '0.0.0',
|
| + 'a': '1.1.0'
|
| + });
|
| +
|
| + testResolve('prefer a stable version even if constraint mentions unstable', {
|
| + 'myapp 0.0.0': {
|
| + 'a': '<=2.0.0-dev'
|
| + },
|
| + 'a 1.0.0': {},
|
| + 'a 1.1.0': {},
|
| + 'a 2.0.0-dev': {},
|
| + 'a 2.0.0': {}
|
| + }, result: {
|
| + 'myapp from root': '0.0.0',
|
| + 'a': '1.1.0'
|
| + });
|
| +}
|
| +
|
| testResolve(description, packages, {
|
| lockfile, result, FailMatcherBuilder error, int maxTries,
|
| bool useBleedingEdgeSdkVersion}) {
|
|
|