From f57950404b94a4c95966eb38251c55e6f2ea29dc Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Sat, 6 Feb 2016 14:14:41 +0800 Subject: [PATCH] more test for dependency_expansion Closes Homebrew/homebrew#48904. Signed-off-by: Xu Cheng --- .../Homebrew/test/test_dependency_expansion.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Library/Homebrew/test/test_dependency_expansion.rb b/Library/Homebrew/test/test_dependency_expansion.rb index 80947376fa..2cad3cda0e 100644 --- a/Library/Homebrew/test/test_dependency_expansion.rb +++ b/Library/Homebrew/test/test_dependency_expansion.rb @@ -115,4 +115,20 @@ class DependencyExpansionTests < Homebrew::TestCase assert_equal [@foo, @bar, @baz, @qux], @f.deps assert_equal [@bar, @baz], Dependency.expand(@f, [@bar, @baz]) end + + def test_cyclic_dependency + foo = build_dep(:foo) + bar = build_dep(:bar, [], [foo]) + foo.stubs(:to_formula).returns(stub(:deps => [bar], :name => "foo")) + f = stub(:name => "f", :deps => [foo, bar]) + assert_nothing_raised { Dependency.expand(f) } + end + + def test_clean_expand_stack + foo = build_dep(:foo) + foo.stubs(:to_formula).raises(FormulaUnavailableError, "foo") + f = stub(:name => "f", :deps => [foo]) + assert_raises(FormulaUnavailableError) { Dependency.expand(f) } + assert_empty Dependency.instance_variable_get(:@expand_stack) + end end