From 8b98ed1f4747852d1ceafcf38fb192f8d5f9da58 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 19 May 2020 14:23:49 +0100 Subject: [PATCH] Further tweak :test dependency handling - ensure that cases where `:build` and `:test` both apply to a dependency that we handle it appropriately - fix reintroduced regression (https://github.com/Homebrew/brew/pull/6471#issuecomment-533414923). Fixes #6470. --- Library/Homebrew/build.rb | 4 ++++ Library/Homebrew/formula_installer.rb | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index c63f45f97e..f9fd51a250 100644 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -52,6 +52,8 @@ class Build Requirement.prune elsif req.prune_if_build_and_not_dependent?(dependent, formula) Requirement.prune + elsif req.test? + Requirement.prune end end end @@ -65,6 +67,8 @@ class Build Dependency.prune elsif dep.build? Dependency.keep_but_prune_recursive_deps + elsif dep.test? + Dependency.prune end end end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 20917292fc..affeae46ef 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -488,10 +488,11 @@ class FormulaInstaller if dep.prune_from_option?(build) Dependency.prune - elsif dep.test? && !dep.build? && !include_test? - Dependency.prune - elsif dep.build? && !dep.test? && install_bottle_for?(dependent, build) - Dependency.prune + elsif dep.test? || (dep.build? && install_bottle_for?(dependent, build)) + keep = false + keep ||= dep.test? && include_test? && dependent == formula + keep ||= dep.build? && !install_bottle_for?(dependent, build) + Dependency.prune unless keep elsif dep.prune_if_build_and_not_dependent?(dependent) Dependency.prune elsif dep.satisfied?(inherited_options[dep.name])