dep*: fix more :test dependency resolution.

This commit is contained in:
Mike McQuaid 2018-03-08 09:46:53 +00:00
parent 6788e78c03
commit 924c4af3de
2 changed files with 9 additions and 6 deletions

View File

@ -144,23 +144,25 @@ module Homebrew
deps = f.recursive_dependencies do |dependent, dep| deps = f.recursive_dependencies do |dependent, dep|
if dep.recommended? if dep.recommended?
Dependency.prune if ignores.include?("recommended?") || dependent.build.without?(dep) Dependency.prune if ignores.include?("recommended?") || dependent.build.without?(dep)
elsif dep.test?
next if includes.include?("test?")
Dependency.prune
elsif dep.optional? elsif dep.optional?
Dependency.prune if !includes.include?("optional?") && !dependent.build.with?(dep) Dependency.prune if !includes.include?("optional?") && !dependent.build.with?(dep)
elsif dep.build? elsif dep.build?
Dependency.prune unless includes.include?("build?") Dependency.prune unless includes.include?("build?")
elsif dep.test?
Dependency.prune unless includes.include?("test?")
end end
end end
reqs = f.recursive_requirements do |dependent, req| reqs = f.recursive_requirements do |dependent, req|
if req.recommended? if req.recommended?
Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req) Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req)
elsif req.test?
next if includes.include?("test?")
Requirement.prune
elsif req.optional? elsif req.optional?
Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req) Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req)
elsif req.build? elsif req.build?
Requirement.prune unless includes.include?("build?") Requirement.prune unless includes.include?("build?")
elsif req.test?
Requirement.prune unless includes.include?("test?")
end end
end end
else else

View File

@ -143,8 +143,9 @@ class Dependency
private private
def merge_tags(deps) def merge_tags(deps)
options = deps.flat_map(&:option_tags).uniq other_tags = deps.flat_map(&:option_tags).uniq
merge_necessity(deps) + merge_temporality(deps) + options other_tags << :test if deps.flat_map(&:tags).include?(:test)
merge_necessity(deps) + merge_temporality(deps) + other_tags
end end
def merge_necessity(deps) def merge_necessity(deps)