File tree 3 files changed +52
-14
lines changed
3 files changed +52
-14
lines changed Original file line number Diff line number Diff line change @@ -1843,7 +1843,16 @@ def eligible_kegs_for_cleanup
1843
1843
eligible_kegs = if head? && ( head_prefix = latest_head_prefix )
1844
1844
installed_kegs - [ Keg . new ( head_prefix ) ]
1845
1845
else
1846
- installed_kegs . select { |k | pkg_version > k . version }
1846
+ installed_kegs . select do |keg |
1847
+ tab = Tab . for_keg ( keg )
1848
+ if version_scheme > tab . version_scheme
1849
+ true
1850
+ elsif version_scheme == tab . version_scheme
1851
+ pkg_version > keg . version
1852
+ else
1853
+ false
1854
+ end
1855
+ end
1847
1856
end
1848
1857
1849
1858
unless eligible_kegs . empty?
Original file line number Diff line number Diff line change @@ -36,25 +36,40 @@ def test_cleanup_dry_run
36
36
end
37
37
38
38
def test_cleanup_formula
39
- f1 = Class . new ( Testball ) { version "0.1" } . new
40
- f2 = Class . new ( Testball ) { version "0.2" } . new
41
- f3 = Class . new ( Testball ) { version "0.3" } . new
39
+ f1 = Class . new ( Testball ) do
40
+ version "1.0"
41
+ end . new
42
+ f2 = Class . new ( Testball ) do
43
+ version "0.2"
44
+ version_scheme 1
45
+ end . new
46
+ f3 = Class . new ( Testball ) do
47
+ version "0.3"
48
+ version_scheme 1
49
+ end . new
50
+ f4 = Class . new ( Testball ) do
51
+ version "0.1"
52
+ version_scheme 2
53
+ end . new
42
54
43
55
shutup do
44
- f1 . brew { f1 . install }
45
- f2 . brew { f2 . install }
46
- f3 . brew { f3 . install }
56
+ [ f1 , f2 , f3 , f4 ] . each do |f |
57
+ f . brew { f . install }
58
+ Tab . create ( f , DevelopmentTools . default_compiler , :libcxx ) . write
59
+ end
47
60
end
48
61
49
62
assert_predicate f1 , :installed?
50
63
assert_predicate f2 , :installed?
51
64
assert_predicate f3 , :installed?
65
+ assert_predicate f4 , :installed?
52
66
53
67
shutup { Homebrew ::Cleanup . cleanup_formula f3 }
54
68
55
69
refute_predicate f1 , :installed?
56
70
refute_predicate f2 , :installed?
57
71
assert_predicate f3 , :installed?
72
+ assert_predicate f4 , :installed?
58
73
end
59
74
60
75
def test_cleanup_logs
Original file line number Diff line number Diff line change @@ -727,21 +727,35 @@ def test_to_hash_bottle
727
727
end
728
728
729
729
def test_eligible_kegs_for_cleanup
730
- f1 = Class . new ( Testball ) { version "0.1" } . new
731
- f2 = Class . new ( Testball ) { version "0.2" } . new
732
- f3 = Class . new ( Testball ) { version "0.3" } . new
730
+ f1 = Class . new ( Testball ) do
731
+ version "1.0"
732
+ end . new
733
+ f2 = Class . new ( Testball ) do
734
+ version "0.2"
735
+ version_scheme 1
736
+ end . new
737
+ f3 = Class . new ( Testball ) do
738
+ version "0.3"
739
+ version_scheme 1
740
+ end . new
741
+ f4 = Class . new ( Testball ) do
742
+ version "0.1"
743
+ version_scheme 2
744
+ end . new
733
745
734
746
shutup do
735
- f1 . brew { f1 . install }
736
- f2 . brew { f2 . install }
737
- f3 . brew { f3 . install }
747
+ [ f1 , f2 , f3 , f4 ] . each do |f |
748
+ f . brew { f . install }
749
+ Tab . create ( f , DevelopmentTools . default_compiler , :libcxx ) . write
750
+ end
738
751
end
739
752
740
753
assert_predicate f1 , :installed?
741
754
assert_predicate f2 , :installed?
742
755
assert_predicate f3 , :installed?
756
+ assert_predicate f4 , :installed?
743
757
744
- assert_equal f3 . installed_kegs . sort_by ( & :version ) [ 0 .. 1 ] ,
758
+ assert_equal [ f2 , f1 ] . map { | f | Keg . new ( f . prefix ) } ,
745
759
f3 . eligible_kegs_for_cleanup . sort_by ( &:version )
746
760
end
747
761
You can’t perform that action at this time.
0 commit comments