| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | require "keg" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-18 15:11:11 -08:00
										 |  |  | RSpec.describe Keg do | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  |   include FileUtils | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-31 13:14:23 -05:00
										 |  |  |   subject(:keg) { described_class.new(keg_path) } | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-27 02:57:12 -07:00
										 |  |  |   describe "#mach_o_files" do | 
					
						
							|  |  |  |     let(:keg_path) { HOMEBREW_CELLAR/"a/1.0" } | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 13:30:37 +01:00
										 |  |  |     before { (keg_path/"lib").mkpath } | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-31 13:14:23 -05:00
										 |  |  |     after { keg.unlink } | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-27 02:57:12 -07:00
										 |  |  |     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" | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-31 13:14:23 -05:00
										 |  |  |       keg.link | 
					
						
							|  |  |  |       expect(keg.mach_o_files.count).to eq(1) | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-27 02:57:12 -07:00
										 |  |  |     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" | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-31 13:14:23 -05:00
										 |  |  |       keg.link | 
					
						
							|  |  |  |       expect(keg.mach_o_files.count).to eq(1) | 
					
						
							| 
									
										
										
										
											2017-02-21 04:52:53 +01:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |