@@ -1759,6 +1759,44 @@ void prerelease() {
1759
1759
'c' : '1.0.0' ,
1760
1760
});
1761
1761
});
1762
+
1763
+ test ('https://github.com/dart-lang/pub/issues/3057 regression' , () async {
1764
+ // This used to cause an infinite loop.
1765
+ await servePackages ((builder) {
1766
+ builder.serve ('a' , '0.12.0' , deps: {});
1767
+ builder.serve ('b' , '0.1.0' , deps: {'c' : '2.0.0' });
1768
+ builder.serve ('b' , '0.9.0-1' , deps: {'c' : '^1.6.0' });
1769
+ builder.serve ('b' , '0.10.0' , deps: {'a' : '1.0.0' });
1770
+ builder.serve ('b' , '0.17.0' , deps: {'a' : '1.0.0' });
1771
+ builder.serve ('c' , '2.0.1' , deps: {});
1772
+ });
1773
+
1774
+ await d.appDir (
1775
+ {
1776
+ 'a' : '0.12.0' ,
1777
+ 'b' : 'any' ,
1778
+ },
1779
+ ).create ();
1780
+ await expectResolves (
1781
+ error: contains (
1782
+ 'So, because myapp depends on both a 0.12.0 and b any, version solving failed.' ),
1783
+ tries: 2 );
1784
+ });
1785
+
1786
+ test ('https://github.com/dart-lang/pub/pull/3038 regression' , () async {
1787
+ await servePackages ((builder) {
1788
+ builder.serve ('a' , '1.1.0' , deps: {'b' : '^1.0.0' });
1789
+ builder.serve ('b' , '1.0.0' , deps: {'c' : '^1.0.0' });
1790
+ builder.serve ('c' , '0.9.0' );
1791
+ builder.serve ('b' , '1.1.0-alpha' );
1792
+ builder.serve ('a' , '1.0.0' , deps: {'b' : '^1.1.0-alpha' });
1793
+ });
1794
+
1795
+ await d.appDir ({
1796
+ 'a' : '^1.0.0' ,
1797
+ }).create ();
1798
+ await expectResolves (tries: 2 );
1799
+ });
1762
1800
}
1763
1801
1764
1802
void override () {
0 commit comments