aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorWilliam Woodruff2016-06-27 19:02:40 -0400
committerMartin Afanasjew2016-06-29 14:34:08 +0200
commitcb3ad215b4fc011e3405e6e577b97819c683036a (patch)
tree219579261ae62951f0c127a523869239e3b39e43 /Library/Homebrew
parentd3ef56425a6b4c190317c2527137b97c0ff5daf8 (diff)
downloadbrew-cb3ad215b4fc011e3405e6e577b97819c683036a.tar.bz2
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>
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/test/test_keg.rb31
-rw-r--r--Library/Homebrew/test/test_mach.rb8
-rw-r--r--Library/Homebrew/test/testing_env.rb8
3 files changed, 39 insertions, 8 deletions
diff --git a/Library/Homebrew/test/test_keg.rb b/Library/Homebrew/test/test_keg.rb
index 9e4254667..f02a65a32 100644
--- a/Library/Homebrew/test/test_keg.rb
+++ b/Library/Homebrew/test/test_keg.rb
@@ -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
diff --git a/Library/Homebrew/test/test_mach.rb b/Library/Homebrew/test/test_mach.rb
index a1f62dcf3..404a21d60 100644
--- a/Library/Homebrew/test/test_mach.rb
+++ b/Library/Homebrew/test/test_mach.rb
@@ -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?
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index 4e7089e42..6be622cc5 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -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