Update and test eligible_kegs_for_cleanup
Closes #478. Signed-off-by: Xu Cheng <xucheng@me.com>
This commit is contained in:
parent
3fb5d70a72
commit
4b2c4ef258
@ -1521,7 +1521,12 @@ class Formula
|
|||||||
def eligible_kegs_for_cleanup
|
def eligible_kegs_for_cleanup
|
||||||
eligible_for_cleanup = []
|
eligible_for_cleanup = []
|
||||||
if installed?
|
if installed?
|
||||||
eligible_kegs = installed_kegs.select { |k| pkg_version > k.version }
|
eligible_kegs = if head? && (head_prefix = latest_head_prefix)
|
||||||
|
installed_kegs - [Keg.new(head_prefix)]
|
||||||
|
else
|
||||||
|
installed_kegs.select { |k| pkg_version > k.version }
|
||||||
|
end
|
||||||
|
|
||||||
if eligible_kegs.any?
|
if eligible_kegs.any?
|
||||||
eligible_kegs.each do |keg|
|
eligible_kegs.each do |keg|
|
||||||
if keg.linked?
|
if keg.linked?
|
||||||
|
@ -451,6 +451,30 @@ class FormulaTests < Homebrew::TestCase
|
|||||||
f3.rack.rmtree
|
f3.rack.rmtree
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_eligible_kegs_for_cleanup_head_installed
|
||||||
|
f = formula do
|
||||||
|
version "0.1"
|
||||||
|
head "foo"
|
||||||
|
end
|
||||||
|
|
||||||
|
stable_prefix = f.installed_prefix
|
||||||
|
stable_prefix.mkpath
|
||||||
|
|
||||||
|
[["000000_1", 1], ["111111", 2], ["111111_1", 2]].each do |pkg_version_suffix, stamp|
|
||||||
|
prefix = f.prefix("HEAD-#{pkg_version_suffix}")
|
||||||
|
prefix.mkpath
|
||||||
|
tab = Tab.empty
|
||||||
|
tab.tabfile = prefix.join("INSTALL_RECEIPT.json")
|
||||||
|
tab.source_modified_time = stamp
|
||||||
|
tab.write
|
||||||
|
end
|
||||||
|
|
||||||
|
eligible_kegs = f.installed_kegs - [Keg.new(f.prefix("HEAD-111111_1"))]
|
||||||
|
assert_equal eligible_kegs, f.eligible_kegs_for_cleanup
|
||||||
|
ensure
|
||||||
|
f.rack.rmtree
|
||||||
|
end
|
||||||
|
|
||||||
def test_pour_bottle
|
def test_pour_bottle
|
||||||
f_false = formula("foo") do
|
f_false = formula("foo") do
|
||||||
url "foo-1.0"
|
url "foo-1.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user