From 96df4fe1da62efe9be9f1a9b5d885672c8f09d75 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Thu, 27 Feb 2014 14:22:42 -0600 Subject: [PATCH] Apply cyclic dependency hack unconditionally --- Library/Homebrew/dependency.rb | 4 +++- Library/Homebrew/test/test_dependency_expansion.rb | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb index 1a2b60a18b..8ddeb90fd2 100644 --- a/Library/Homebrew/dependency.rb +++ b/Library/Homebrew/dependency.rb @@ -75,6 +75,9 @@ class Dependency expanded_deps = [] deps.each do |dep| + # FIXME don't hide cyclic dependencies + next if dependent.name == dep.name + case action(dependent, dep, &block) when :prune next @@ -83,7 +86,6 @@ class Dependency when :keep_but_prune_recursive_deps expanded_deps << dep else - next if dependent.to_s == dep.name expanded_deps.concat(expand(dep.to_formula, &block)) expanded_deps << dep end diff --git a/Library/Homebrew/test/test_dependency_expansion.rb b/Library/Homebrew/test/test_dependency_expansion.rb index b34cd35f40..08165b2d1e 100644 --- a/Library/Homebrew/test/test_dependency_expansion.rb +++ b/Library/Homebrew/test/test_dependency_expansion.rb @@ -4,7 +4,7 @@ require 'dependency' class DependencyExpansionTests < Test::Unit::TestCase def build_dep(name, tags=[], deps=[]) dep = Dependency.new(name.to_s, tags) - dep.stubs(:to_formula).returns(stub(:deps => deps)) + dep.stubs(:to_formula).returns(stub(:deps => deps, :name => name)) dep end @@ -14,7 +14,7 @@ class DependencyExpansionTests < Test::Unit::TestCase @baz = build_dep(:baz) @qux = build_dep(:qux) @deps = [@foo, @bar, @baz, @qux] - @f = stub(:deps => @deps) + @f = stub(:deps => @deps, :name => "f") end def test_expand_yields_dependent_and_dep_pairs @@ -43,19 +43,19 @@ class DependencyExpansionTests < Test::Unit::TestCase end def test_expand_preserves_dependency_order - @foo.stubs(:to_formula).returns(stub(:deps => [@qux, @baz])) + @foo.stubs(:to_formula).returns(stub(:name => "f", :deps => [@qux, @baz])) assert_equal [@qux, @baz, @foo, @bar], Dependency.expand(@f) end def test_expand_skips_optionals_by_default @foo.expects(:optional?).returns(true) - @f = stub(:deps => @deps, :build => stub(:with? => false)) + @f = stub(:deps => @deps, :build => stub(:with? => false), :name => "f") assert_equal [@bar, @baz, @qux], Dependency.expand(@f) end def test_expand_keeps_recommendeds_by_default @foo.expects(:recommended?).returns(true) - @f = stub(:deps => @deps, :build => stub(:with? => true)) + @f = stub(:deps => @deps, :build => stub(:with? => true), :name => "f") assert_equal @deps, Dependency.expand(@f) end @@ -84,7 +84,7 @@ class DependencyExpansionTests < Test::Unit::TestCase end def test_skip_skips_parent_but_yields_children - f = stub(:deps => [ + f = stub(:name => "f", :deps => [ build_dep(:foo, [], [@bar, @baz]), build_dep(:foo, [], [@baz]), ]) @@ -97,7 +97,7 @@ class DependencyExpansionTests < Test::Unit::TestCase end def test_keep_dep_but_prune_recursive_deps - f = stub(:deps => [ + f = stub(:name => "f", :deps => [ build_dep(:foo, [:build], [@bar]), build_dep(:baz, [:build]), ])