formula_installer: fix already-satisfied test deps not being pruned

This commit is contained in:
Bo Anderson 2020-05-20 13:13:55 +01:00
parent bfc081ee0b
commit 6ac9d43599

View File

@ -453,22 +453,18 @@ class FormulaInstaller
build = effective_build_options_for(dependent) build = effective_build_options_for(dependent)
install_bottle_for_dependent = install_bottle_for?(dependent, build) install_bottle_for_dependent = install_bottle_for?(dependent, build)
keep_build_test = false
keep_build_test ||= runtime_requirements.include?(req)
keep_build_test ||= req.test? && include_test? && dependent == f
keep_build_test ||= req.build? && !install_bottle_for_dependent
keep_build_test ||= (dep = formula_deps_map[dependent.name]) && !dep.build?
if req.prune_from_option?(build) if req.prune_from_option?(build)
Requirement.prune Requirement.prune
elsif req.satisfied? elsif req.satisfied?
Requirement.prune Requirement.prune
elsif req.test? || req.build? elsif (req.build? || req.test?) && !keep_build_test
keep = false Requirement.prune
keep ||= runtime_requirements.include?(req)
keep ||= req.test? && include_test? && dependent == f
keep ||= req.build? && !install_bottle_for_dependent
keep ||= (dep = formula_deps_map[dependent.name]) && !dep.build?
if keep
unsatisfied_reqs[dependent] << req
else
Requirement.prune
end
else else
unsatisfied_reqs[dependent] << req unsatisfied_reqs[dependent] << req
end end
@ -492,13 +488,14 @@ class FormulaInstaller
inherited_options.fetch(dependent.name, []), inherited_options.fetch(dependent.name, []),
) )
keep_build_test = false
keep_build_test ||= dep.test? && include_test? && Homebrew.args.include_formula_test_deps?(dependent)
keep_build_test ||= dep.build? && !install_bottle_for?(dependent, build)
if dep.prune_from_option?(build) if dep.prune_from_option?(build)
Dependency.prune Dependency.prune
elsif dep.test? || (dep.build? && install_bottle_for?(dependent, build)) elsif (dep.build? || dep.test?) && !keep_build_test
keep = false Dependency.prune
keep ||= dep.test? && include_test? && Homebrew.args.include_formula_test_deps?(dependent)
keep ||= dep.build? && !install_bottle_for?(dependent, build)
Dependency.prune unless keep
elsif dep.prune_if_build_and_not_dependent?(dependent) elsif dep.prune_if_build_and_not_dependent?(dependent)
Dependency.prune Dependency.prune
elsif dep.satisfied?(inherited_options[dep.name]) elsif dep.satisfied?(inherited_options[dep.name])