diff options
| -rw-r--r-- | Library/Homebrew/test/os/mac/keg_spec.rb | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/Library/Homebrew/test/os/mac/keg_spec.rb b/Library/Homebrew/test/os/mac/keg_spec.rb index 562c2ba6a..4321c61cd 100644 --- a/Library/Homebrew/test/os/mac/keg_spec.rb +++ b/Library/Homebrew/test/os/mac/keg_spec.rb @@ -5,28 +5,54 @@ describe Keg do subject { described_class.new(keg_path) } - describe "#mach_o_files" do - let(:keg_path) { HOMEBREW_CELLAR/"a/1.0" } + let(:keg_path) { HOMEBREW_CELLAR/"a/1.0" } + let(:file) { keg_path/"lib/i386.dylib" } - before(:each) { (keg_path/"lib").mkpath } + before(:each) do + (keg_path/"lib").mkpath + cp dylib_path("i386"), file + subject.link + end - after(:each) { subject.unlink } + after(:each) { subject.unlink } - it "skips hardlinks" do - cp dylib_path("i386"), keg_path/"lib/i386.dylib" - ln keg_path/"lib/i386.dylib", keg_path/"lib/i386_hardlink.dylib" + describe "#change_dylib_id" do + it "does nothing if given id is same as file's dylib id" do + id = file.dylib_id + file.change_dylib_id(id) + expect(file.dylib_id).to eq(id) + end + end - subject.link - expect(subject.mach_o_files.count).to eq(1) + describe "#change_install_name" do + it "does nothing if given name is same as file's install name" do + file.ensure_writable do + subject.each_install_name_for(file) do |name| + file.change_install_name(name, name) + expect(name).to eq(name) + end + end end - it "isn't confused by symlinks" do - cp dylib_path("i386"), keg_path/"lib/i386.dylib" - ln keg_path/"lib/i386.dylib", keg_path/"lib/i386_hardlink.dylib" - ln_s keg_path/"lib/i386.dylib", keg_path/"lib/i386_symlink.dylib" + it "does nothing when install name start with '/'" do + file.ensure_writable do + subject.each_install_name_for(file) do |name| + new_name = subject.fixed_name(file, name) + file.change_install_name(name, new_name) + expect(name).not_to eq(new_name) + end + end + end + end + + describe "#require_relocation?" do + it "is set to false at initialization" do + expect(subject.require_relocation?).to be false + end - subject.link - expect(subject.mach_o_files.count).to eq(1) + it "is set to true after linkage is fixed" do + subject.fix_dynamic_linkage + expect(subject.require_relocation?).to be true end end end |
