Revert "Only check undeclared dependencies on macOS"
This reverts commit fa5245f7adf38833b03e92e42aa5217ac5157773.
This commit is contained in:
parent
fa5245f7ad
commit
51b27039be
@ -1,16 +0,0 @@
|
||||
require "os/mac/linkage_checker"
|
||||
|
||||
class Formula
|
||||
def undeclared_runtime_dependencies
|
||||
if optlinked?
|
||||
keg = Keg.new(opt_prefix)
|
||||
elsif prefix.directory?
|
||||
keg = Keg.new(prefix)
|
||||
else
|
||||
return []
|
||||
end
|
||||
|
||||
linkage_checker = LinkageChecker.new(keg, self)
|
||||
linkage_checker.undeclared_deps.map { |n| Dependency.new(n) }
|
||||
end
|
||||
end
|
||||
@ -13,6 +13,7 @@ require "pkg_version"
|
||||
require "tap"
|
||||
require "keg"
|
||||
require "migrator"
|
||||
require "os/mac/linkage_checker"
|
||||
require "extend/ENV"
|
||||
require "language/python"
|
||||
|
||||
@ -1840,7 +1841,16 @@ class Formula
|
||||
end
|
||||
|
||||
def undeclared_runtime_dependencies
|
||||
[]
|
||||
if optlinked?
|
||||
keg = Keg.new(opt_prefix)
|
||||
elsif prefix.directory?
|
||||
keg = Keg.new(prefix)
|
||||
else
|
||||
return []
|
||||
end
|
||||
|
||||
linkage_checker = LinkageChecker.new(keg, self)
|
||||
linkage_checker.undeclared_deps.map { |n| Dependency.new(n) }
|
||||
end
|
||||
|
||||
# Returns the prefix for a given formula version number.
|
||||
|
||||
@ -685,26 +685,44 @@ describe Formula do
|
||||
expect(f5.runtime_dependencies.map(&:name)).to eq(["f1", "f4"])
|
||||
end
|
||||
|
||||
specify "runtime dependencies with optional deps from tap" do
|
||||
tap_loader = double
|
||||
describe "#runtime_dependencies" do
|
||||
specify "runtime dependencies with optional deps from tap" do
|
||||
tap_loader = double
|
||||
|
||||
allow(tap_loader).to receive(:get_formula).and_raise(RuntimeError, "tried resolving tap formula")
|
||||
allow(Formulary).to receive(:loader_for).with("foo/bar/f1", from: nil).and_return(tap_loader)
|
||||
stub_formula_loader(formula("f2") { url("f2-1.0") }, "baz/qux/f2")
|
||||
allow(tap_loader).to receive(:get_formula).and_raise(RuntimeError, "tried resolving tap formula")
|
||||
allow(Formulary).to receive(:loader_for).with("foo/bar/f1", from: nil).and_return(tap_loader)
|
||||
stub_formula_loader(formula("f2") { url("f2-1.0") }, "baz/qux/f2")
|
||||
|
||||
f3 = formula "f3" do
|
||||
url "f3-1.0"
|
||||
f3 = formula "f3" do
|
||||
url "f3-1.0"
|
||||
|
||||
depends_on "foo/bar/f1" => :optional
|
||||
depends_on "baz/qux/f2"
|
||||
depends_on "foo/bar/f1" => :optional
|
||||
depends_on "baz/qux/f2"
|
||||
end
|
||||
|
||||
expect(f3.runtime_dependencies.map(&:name)).to eq(["baz/qux/f2"])
|
||||
|
||||
stub_formula_loader(formula("f1") { url("f1-1.0") }, "foo/bar/f1")
|
||||
f3.build = BuildOptions.new(Options.create(["--with-f1"]), f3.options)
|
||||
|
||||
expect(f3.runtime_dependencies.map(&:name)).to eq(["foo/bar/f1", "baz/qux/f2"])
|
||||
end
|
||||
|
||||
expect(f3.runtime_dependencies.map(&:name)).to eq(["baz/qux/f2"])
|
||||
it "includes non-declared direct dependencies" do
|
||||
formula = Class.new(Testball).new
|
||||
dependency = formula("dependency") { url "f-1.0" }
|
||||
|
||||
stub_formula_loader(formula("f1") { url("f1-1.0") }, "foo/bar/f1")
|
||||
f3.build = BuildOptions.new(Options.create(["--with-f1"]), f3.options)
|
||||
formula.brew { formula.install }
|
||||
keg = Keg.for(formula.prefix)
|
||||
keg.link
|
||||
|
||||
expect(f3.runtime_dependencies.map(&:name)).to eq(["foo/bar/f1", "baz/qux/f2"])
|
||||
brewed_dylibs = { dependency.name => Set["some.dylib"] }
|
||||
linkage_checker = double("linkage checker", brewed_dylibs: brewed_dylibs)
|
||||
allow(LinkageChecker).to receive(:new).with(keg, any_args)
|
||||
.and_return(linkage_checker)
|
||||
|
||||
expect(formula.runtime_dependencies).to include an_object_having_attributes(name: dependency.name)
|
||||
end
|
||||
end
|
||||
|
||||
specify "requirements" do
|
||||
|
||||
@ -1,19 +0,0 @@
|
||||
RSpec.describe Formula do
|
||||
describe "#runtime_dependencies" do
|
||||
it "includes non-declared direct dependencies" do
|
||||
formula = Class.new(Testball).new
|
||||
dependency = formula("dependency") { url "f-1.0" }
|
||||
|
||||
formula.brew { formula.install }
|
||||
keg = Keg.for(formula.prefix)
|
||||
keg.link
|
||||
|
||||
brewed_dylibs = { dependency.name => Set["some.dylib"] }
|
||||
linkage_checker = double("linkage checker", brewed_dylibs: brewed_dylibs)
|
||||
allow(LinkageChecker).to receive(:new).with(keg, any_args)
|
||||
.and_return(linkage_checker)
|
||||
|
||||
expect(formula.runtime_dependencies).to include an_object_having_attributes(name: dependency.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user