70 lines
1.5 KiB
Ruby
70 lines
1.5 KiB
Ruby
require "testing_env"
|
|
require "keg"
|
|
require "stringio"
|
|
|
|
class OSMacLinkTests < Homebrew::TestCase
|
|
include FileUtils
|
|
|
|
def setup
|
|
keg = HOMEBREW_CELLAR.join("foo", "1.0")
|
|
keg.join("bin").mkpath
|
|
|
|
%w[hiworld helloworld goodbye_cruel_world].each do |file|
|
|
touch keg.join("bin", file)
|
|
end
|
|
|
|
@keg = Keg.new(keg)
|
|
@dst = HOMEBREW_PREFIX.join("bin", "helloworld")
|
|
@nonexistent = Pathname.new("/some/nonexistent/path")
|
|
|
|
@mode = OpenStruct.new
|
|
|
|
@old_stdout = $stdout
|
|
$stdout = StringIO.new
|
|
|
|
mkpath HOMEBREW_PREFIX/"bin"
|
|
mkpath HOMEBREW_PREFIX/"lib"
|
|
end
|
|
|
|
def teardown
|
|
@keg.unlink
|
|
@keg.uninstall
|
|
|
|
$stdout = @old_stdout
|
|
|
|
rmtree HOMEBREW_PREFIX/"bin"
|
|
rmtree HOMEBREW_PREFIX/"lib"
|
|
end
|
|
|
|
def test_mach_o_files_skips_hardlinks
|
|
a = HOMEBREW_CELLAR/"a/1.0"
|
|
(a/"lib").mkpath
|
|
FileUtils.cp dylib_path("i386"), a/"lib/i386.dylib"
|
|
FileUtils.ln a/"lib/i386.dylib", a/"lib/i386_link.dylib"
|
|
|
|
keg = Keg.new(a)
|
|
keg.link
|
|
|
|
assert_equal 1, keg.mach_o_files.size
|
|
ensure
|
|
keg.unlink
|
|
keg.uninstall
|
|
end
|
|
|
|
def test_mach_o_files_isnt_confused_by_symlinks
|
|
a = HOMEBREW_CELLAR/"a/1.0"
|
|
(a/"lib").mkpath
|
|
FileUtils.cp dylib_path("i386"), a/"lib/i386.dylib"
|
|
FileUtils.ln a/"lib/i386.dylib", a/"lib/i386_link.dylib"
|
|
FileUtils.ln_s a/"lib/i386.dylib", a/"lib/1.dylib"
|
|
|
|
keg = Keg.new(a)
|
|
keg.link
|
|
|
|
assert_equal 1, keg.mach_o_files.size
|
|
ensure
|
|
keg.unlink
|
|
keg.uninstall
|
|
end
|
|
end
|