forked from Homebrew/brew
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ld_spec.rb
47 lines (37 loc) 路 1.25 KB
/
ld_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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