48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require "os/linux/ld"
 | |
| require "tmpdir"
 | |
| 
 | |
| RSpec.describe OS::Linux::Ld do
 | |
|   describe "::library_paths" do
 | |
|     ld_etc = Pathname("")
 | |
|     before do
 | |
|       ld_etc = Pathname(Dir.mktmpdir("homebrew-tests-ld-etc-", Dir.tmpdir))
 | |
|       FileUtils.mkdir [ld_etc/"subdir1", ld_etc/"subdir2"]
 | |
|       (ld_etc/"ld.so.conf").write <<~EOS
 | |
|         # This line is a comment
 | |
| 
 | |
|         include #{ld_etc}/subdir1/*.conf # This is an end-of-line comment, should be ignored
 | |
| 
 | |
|         # subdir2 is an empty directory
 | |
|         include #{ld_etc}/subdir2/*.conf
 | |
| 
 | |
|         /a/b/c
 | |
|           /d/e/f # Indentation on this line should be ignored
 | |
|         /a/b/c # Duplicate entry should be ignored
 | |
|       EOS
 | |
| 
 | |
|       (ld_etc/"subdir1/1-1.conf").write <<~EOS
 | |
|         /foo/bar
 | |
|         /baz/qux
 | |
|       EOS
 | |
| 
 | |
|       (ld_etc/"subdir1/1-2.conf").write <<~EOS
 | |
|         /g/h/i
 | |
|       EOS
 | |
| 
 | |
|       # Empty files (or files containing only whitespace) should be ignored
 | |
|       (ld_etc/"subdir1/1-3.conf").write "\n\t\n\t\n"
 | |
|       (ld_etc/"subdir1/1-4.conf").write ""
 | |
|     end
 | |
| 
 | |
|     after do
 | |
|       FileUtils.rm_rf ld_etc
 | |
|     end
 | |
| 
 | |
|     it "parses library paths successfully" do
 | |
|       expect(described_class.library_paths(ld_etc/"ld.so.conf")).to eq(%w[/foo/bar /baz/qux /g/h/i /a/b/c /d/e/f])
 | |
|     end
 | |
|   end
 | |
| end
 | 
