test: Add tests for Keg#mach_o_files link behavior.

Move dylib_path and bundle_path from test_mach to testing_env to
accommodate the new tests.

Closes #400.

Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
This commit is contained in:
William Woodruff 2016-06-27 19:02:40 -04:00 committed by Martin Afanasjew
parent d3ef56425a
commit cb3ad215b4
3 changed files with 39 additions and 8 deletions

View File

@ -304,4 +304,35 @@ class LinkTests < Homebrew::TestCase
keg.unlink
keg.uninstall
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

View File

@ -1,14 +1,6 @@
require "testing_env"
class MachOPathnameTests < Homebrew::TestCase
def dylib_path(name)
Pathname.new("#{TEST_DIRECTORY}/mach/#{name}.dylib")
end
def bundle_path(name)
Pathname.new("#{TEST_DIRECTORY}/mach/#{name}.bundle")
end
def test_fat_dylib
pn = dylib_path("fat")
assert_predicate pn, :universal?

View File

@ -112,5 +112,13 @@ module Homebrew
}
refute exp.eql?(act), msg
end
def dylib_path(name)
Pathname.new("#{TEST_DIRECTORY}/mach/#{name}.dylib")
end
def bundle_path(name)
Pathname.new("#{TEST_DIRECTORY}/mach/#{name}.bundle")
end
end
end