diff options
| author | William Woodruff | 2016-06-27 19:02:40 -0400 |
|---|---|---|
| committer | Martin Afanasjew | 2016-06-29 14:34:08 +0200 |
| commit | cb3ad215b4fc011e3405e6e577b97819c683036a (patch) | |
| tree | 219579261ae62951f0c127a523869239e3b39e43 /Library | |
| parent | d3ef56425a6b4c190317c2527137b97c0ff5daf8 (diff) | |
| download | brew-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')
| -rw-r--r-- | Library/Homebrew/test/test_keg.rb | 31 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_mach.rb | 8 | ||||
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 8 |
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 |
