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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
require "testing_env"
require "cmd/command"
require "cmd/commands"
require "fileutils"
class CommandsTests < Homebrew::TestCase
def setup
@cmds = [
# internal commands
HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb",
HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh",
# internal development commands
HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb",
HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh",
]
@cmds.each { |f| FileUtils.touch f }
end
def teardown
@cmds.each(&:unlink)
end
def test_internal_commands
cmds = Homebrew.internal_commands
assert cmds.include?("rbcmd"), "Ruby commands files should be recognized"
assert cmds.include?("shcmd"), "Shell commands files should be recognized"
refute cmds.include?("rbdevcmd"), "Dev commands shouldn't be included"
end
def test_internal_developer_commands
cmds = Homebrew.internal_developer_commands
assert cmds.include?("rbdevcmd"), "Ruby commands files should be recognized"
assert cmds.include?("shdevcmd"), "Shell commands files should be recognized"
refute cmds.include?("rbcmd"), "Non-dev commands shouldn't be included"
end
def test_external_commands
env = ENV.to_hash
mktmpdir do |dir|
%w[brew-t1 brew-t2.rb brew-t3.py].each do |file|
path = "#{dir}/#{file}"
FileUtils.touch path
FileUtils.chmod 0755, path
end
FileUtils.touch "#{dir}/brew-t4"
ENV["PATH"] += "#{File::PATH_SEPARATOR}#{dir}"
cmds = Homebrew.external_commands
assert cmds.include?("t1"), "Executable files should be included"
assert cmds.include?("t2"), "Executable Ruby files should be included"
refute cmds.include?("t3"),
"Executable files with a non Ruby extension shoudn't be included"
refute cmds.include?("t4"), "Non-executable files shouldn't be included"
end
ensure
ENV.replace(env)
end
def test_internal_command_path
assert_equal HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb",
Homebrew.send(:internal_command_path, "rbcmd")
assert_equal HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh",
Homebrew.send(:internal_command_path, "shcmd")
assert_nil Homebrew.send(:internal_command_path, "idontexist1234")
end
def test_internal_dev_command_path
assert_equal HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb",
Homebrew.send(:internal_command_path, "rbdevcmd")
assert_equal HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh",
Homebrew.send(:internal_command_path, "shdevcmd")
end
end
|