mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

Formulae can now pass build options to dependencies. The following syntax is supported: depends_on 'foo' => 'with-bar' depends_on 'foo' => ['with-bar', 'with-baz'] If a dependency is already installed but lacks the required build options, an exception is raised. Eventually we may be able to just stash the existing keg and reinstall it with the combined set of used_options and passed options, but enabling that is left for another day.
53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
require 'testing_env'
|
|
require 'dependencies'
|
|
require 'options'
|
|
|
|
class DependableTests < Test::Unit::TestCase
|
|
def setup
|
|
@tags = ["foo", "bar", :build]
|
|
@dep = Struct.new(:tags).new(@tags).extend(Dependable)
|
|
end
|
|
|
|
def test_options
|
|
assert_equal %w{--foo --bar}.sort, @dep.options.as_flags.sort
|
|
end
|
|
|
|
def test_interrogation
|
|
assert @dep.build?
|
|
assert !@dep.optional?
|
|
assert !@dep.recommended?
|
|
end
|
|
end
|
|
|
|
class DependencyTests < Test::Unit::TestCase
|
|
def test_accepts_single_tag
|
|
dep = Dependency.new("foo", "bar")
|
|
assert_equal %w{bar}, dep.tags
|
|
end
|
|
|
|
def test_accepts_multiple_tags
|
|
dep = Dependency.new("foo", %w{bar baz})
|
|
assert_equal %w{bar baz}.sort, dep.tags.sort
|
|
end
|
|
|
|
def test_preserves_symbol_tags
|
|
dep = Dependency.new("foo", :build)
|
|
assert_equal [:build], dep.tags
|
|
end
|
|
|
|
def test_accepts_symbol_and_string_tags
|
|
dep = Dependency.new("foo", [:build, "bar"])
|
|
assert_equal [:build, "bar"], dep.tags
|
|
end
|
|
|
|
def test_equality
|
|
foo1 = Dependency.new("foo")
|
|
foo2 = Dependency.new("foo")
|
|
bar = Dependency.new("bar")
|
|
assert_equal foo1, foo2
|
|
assert foo1.eql?(foo2)
|
|
assert_not_equal foo1, bar
|
|
assert !foo1.eql?(bar)
|
|
end
|
|
end
|