From 9e2baa3bff1f07f68b397b47752727df8ab4b752 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Fri, 1 Jun 2018 21:36:28 +0100 Subject: [PATCH] Add additional runtime_dependency related tests. --- Library/Homebrew/test/dependency_spec.rb | 4 ++++ Library/Homebrew/test/formula_spec.rb | 14 ++++++++++++++ Library/Homebrew/test/formulary_spec.rb | 6 ++++++ Library/Homebrew/test/tab_spec.rb | 12 ++++++++++++ 4 files changed, 36 insertions(+) diff --git a/Library/Homebrew/test/dependency_spec.rb b/Library/Homebrew/test/dependency_spec.rb index 6ac2acca2c..bc2fa813b1 100644 --- a/Library/Homebrew/test/dependency_spec.rb +++ b/Library/Homebrew/test/dependency_spec.rb @@ -23,6 +23,10 @@ describe Dependency do dep = described_class.new("foo", [:build, "bar"]) expect(dep.tags).to eq([:build, "bar"]) end + + it "rejects nil names" do + expect { described_class.new(nil) }.to raise_error(ArgumentError) + end end describe "::merge_repeats" do diff --git a/Library/Homebrew/test/formula_spec.rb b/Library/Homebrew/test/formula_spec.rb index da17a22fe4..8943e8d325 100644 --- a/Library/Homebrew/test/formula_spec.rb +++ b/Library/Homebrew/test/formula_spec.rb @@ -771,6 +771,20 @@ describe Formula do expect(formula.runtime_dependencies.map(&:name)).to eq [dependency.name] end + + it "handles bad tab runtime_dependencies" do + formula = Class.new(Testball).new + + formula.brew { formula.install } + tab = Tab.create(formula, DevelopmentTools.default_compiler, :libcxx) + tab.runtime_dependencies = ["foo"] + tab.write + + keg = Keg.for(formula.installed_prefix) + keg.link + + expect(formula.runtime_dependencies.map(&:name)).to be_empty + end end specify "requirements" do diff --git a/Library/Homebrew/test/formulary_spec.rb b/Library/Homebrew/test/formulary_spec.rb index 2beaed5e34..7e29f61d37 100644 --- a/Library/Homebrew/test/formulary_spec.rb +++ b/Library/Homebrew/test/formulary_spec.rb @@ -72,6 +72,12 @@ describe Formulary do }.to raise_error(FormulaUnavailableError) end + it "raises an error if ref is nil" do + expect { + described_class.factory(nil) + }.to raise_error(ArgumentError) + end + context "when the Formula has the wrong class" do let(:formula_name) { "giraffe" } let(:formula_content) do diff --git a/Library/Homebrew/test/tab_spec.rb b/Library/Homebrew/test/tab_spec.rb index b44749e220..c8448964fc 100644 --- a/Library/Homebrew/test/tab_spec.rb +++ b/Library/Homebrew/test/tab_spec.rb @@ -138,6 +138,18 @@ describe Tab do expect(tab.runtime_dependencies).not_to be nil end + specify "::runtime_deps_hash" do + runtime_deps = [Dependency.new("foo")] + stub_formula_loader formula("foo") { url "foo-1.0" } + runtime_deps_hash = described_class.runtime_deps_hash(runtime_deps) + tab = described_class.new + tab.homebrew_version = "1.1.6" + tab.runtime_dependencies = runtime_deps_hash + expect(tab.runtime_dependencies).to eql( + [{ "full_name" => "foo", "version" => "1.0" }], + ) + end + specify "#cxxstdlib" do expect(subject.cxxstdlib.compiler).to eq(:clang) expect(subject.cxxstdlib.type).to eq(:libcxx)