audit: fixes for test checks
This commit is contained in:
parent
3e890c11ad
commit
2487345460
@ -772,7 +772,7 @@ module Homebrew
|
||||
end
|
||||
bin_names.each do |name|
|
||||
["system", "shell_output", "pipe_output"].each do |cmd|
|
||||
if text =~ %r{(def test|test do).*(#{Regexp.escape(HOMEBREW_PREFIX)}/bin/)?#{cmd}[\(\s]+['"]#{Regexp.escape(name)}[\s'"]}m
|
||||
if text =~ /test do.*#{cmd}[\(\s]+['"]#{Regexp.escape(name)}[\s'"]/m
|
||||
problem %Q(fully scope test #{cmd} calls e.g. #{cmd} "\#{bin}/#{name}")
|
||||
end
|
||||
end
|
||||
@ -803,10 +803,6 @@ module Homebrew
|
||||
|
||||
problem "Use separate make calls" if line.include?("make && make")
|
||||
|
||||
if line =~ /shell_output\(['"].+['"], 0\)/
|
||||
problem "Passing 0 to shell_output() is redundant"
|
||||
end
|
||||
|
||||
if line =~ /JAVA_HOME/i && !formula.requirements.map(&:class).include?(JavaRequirement)
|
||||
problem "Use `depends_on :java` to set JAVA_HOME"
|
||||
end
|
||||
|
||||
@ -22,6 +22,27 @@ module RuboCop
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class TestCalls < FormulaCop
|
||||
def audit_formula(_node, _class_node, _parent_class_node, body_node)
|
||||
test_calls(find_block(body_node, :test)) do |node, params|
|
||||
p1, p2 = params
|
||||
if match = string_content(p1).match(%r{(/usr/local/(s?bin))})
|
||||
offending_node(p1)
|
||||
problem "use \#{#{match[2]}} instead of #{match[1]} in #{node}"
|
||||
end
|
||||
|
||||
if node == :shell_output && node_equals?(p2, 0)
|
||||
offending_node(p2)
|
||||
problem "Passing 0 to shell_output() is redundant"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def_node_search :test_calls, <<~EOS
|
||||
(send nil? ${:system :shell_output :pipe_output} $...)
|
||||
EOS
|
||||
end
|
||||
end
|
||||
|
||||
module FormulaAuditStrict
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user