Apply cyclic dependency hack unconditionally
This commit is contained in:
parent
e9b687070a
commit
96df4fe1da
@ -75,6 +75,9 @@ class Dependency
|
|||||||
expanded_deps = []
|
expanded_deps = []
|
||||||
|
|
||||||
deps.each do |dep|
|
deps.each do |dep|
|
||||||
|
# FIXME don't hide cyclic dependencies
|
||||||
|
next if dependent.name == dep.name
|
||||||
|
|
||||||
case action(dependent, dep, &block)
|
case action(dependent, dep, &block)
|
||||||
when :prune
|
when :prune
|
||||||
next
|
next
|
||||||
@ -83,7 +86,6 @@ class Dependency
|
|||||||
when :keep_but_prune_recursive_deps
|
when :keep_but_prune_recursive_deps
|
||||||
expanded_deps << dep
|
expanded_deps << dep
|
||||||
else
|
else
|
||||||
next if dependent.to_s == dep.name
|
|
||||||
expanded_deps.concat(expand(dep.to_formula, &block))
|
expanded_deps.concat(expand(dep.to_formula, &block))
|
||||||
expanded_deps << dep
|
expanded_deps << dep
|
||||||
end
|
end
|
||||||
|
@ -4,7 +4,7 @@ require 'dependency'
|
|||||||
class DependencyExpansionTests < Test::Unit::TestCase
|
class DependencyExpansionTests < Test::Unit::TestCase
|
||||||
def build_dep(name, tags=[], deps=[])
|
def build_dep(name, tags=[], deps=[])
|
||||||
dep = Dependency.new(name.to_s, tags)
|
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
|
dep
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ class DependencyExpansionTests < Test::Unit::TestCase
|
|||||||
@baz = build_dep(:baz)
|
@baz = build_dep(:baz)
|
||||||
@qux = build_dep(:qux)
|
@qux = build_dep(:qux)
|
||||||
@deps = [@foo, @bar, @baz, @qux]
|
@deps = [@foo, @bar, @baz, @qux]
|
||||||
@f = stub(:deps => @deps)
|
@f = stub(:deps => @deps, :name => "f")
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_expand_yields_dependent_and_dep_pairs
|
def test_expand_yields_dependent_and_dep_pairs
|
||||||
@ -43,19 +43,19 @@ class DependencyExpansionTests < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_expand_preserves_dependency_order
|
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)
|
assert_equal [@qux, @baz, @foo, @bar], Dependency.expand(@f)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_expand_skips_optionals_by_default
|
def test_expand_skips_optionals_by_default
|
||||||
@foo.expects(:optional?).returns(true)
|
@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)
|
assert_equal [@bar, @baz, @qux], Dependency.expand(@f)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_expand_keeps_recommendeds_by_default
|
def test_expand_keeps_recommendeds_by_default
|
||||||
@foo.expects(:recommended?).returns(true)
|
@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)
|
assert_equal @deps, Dependency.expand(@f)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ class DependencyExpansionTests < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_skip_skips_parent_but_yields_children
|
def test_skip_skips_parent_but_yields_children
|
||||||
f = stub(:deps => [
|
f = stub(:name => "f", :deps => [
|
||||||
build_dep(:foo, [], [@bar, @baz]),
|
build_dep(:foo, [], [@bar, @baz]),
|
||||||
build_dep(:foo, [], [@baz]),
|
build_dep(:foo, [], [@baz]),
|
||||||
])
|
])
|
||||||
@ -97,7 +97,7 @@ class DependencyExpansionTests < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_keep_dep_but_prune_recursive_deps
|
def test_keep_dep_but_prune_recursive_deps
|
||||||
f = stub(:deps => [
|
f = stub(:name => "f", :deps => [
|
||||||
build_dep(:foo, [:build], [@bar]),
|
build_dep(:foo, [:build], [@bar]),
|
||||||
build_dep(:baz, [:build]),
|
build_dep(:baz, [:build]),
|
||||||
])
|
])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user