From 924c4af3de99f1f7dfef3acdcb03de2bcc9af0ee Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 8 Mar 2018 09:46:53 +0000 Subject: [PATCH] dep*: fix more :test dependency resolution. --- Library/Homebrew/cmd/deps.rb | 10 ++++++---- Library/Homebrew/dependency.rb | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/deps.rb b/Library/Homebrew/cmd/deps.rb index 8beb84e408..40aa2f413d 100644 --- a/Library/Homebrew/cmd/deps.rb +++ b/Library/Homebrew/cmd/deps.rb @@ -144,23 +144,25 @@ module Homebrew deps = f.recursive_dependencies do |dependent, dep| if dep.recommended? Dependency.prune if ignores.include?("recommended?") || dependent.build.without?(dep) + elsif dep.test? + next if includes.include?("test?") + Dependency.prune elsif dep.optional? Dependency.prune if !includes.include?("optional?") && !dependent.build.with?(dep) elsif dep.build? Dependency.prune unless includes.include?("build?") - elsif dep.test? - Dependency.prune unless includes.include?("test?") end end reqs = f.recursive_requirements do |dependent, req| if req.recommended? Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req) + elsif req.test? + next if includes.include?("test?") + Requirement.prune elsif req.optional? Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req) elsif req.build? Requirement.prune unless includes.include?("build?") - elsif req.test? - Requirement.prune unless includes.include?("test?") end end else diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb index 7f0e7fbffe..7ae0703609 100644 --- a/Library/Homebrew/dependency.rb +++ b/Library/Homebrew/dependency.rb @@ -143,8 +143,9 @@ class Dependency private def merge_tags(deps) - options = deps.flat_map(&:option_tags).uniq - merge_necessity(deps) + merge_temporality(deps) + options + other_tags = deps.flat_map(&:option_tags).uniq + other_tags << :test if deps.flat_map(&:tags).include?(:test) + merge_necessity(deps) + merge_temporality(deps) + other_tags end def merge_necessity(deps)