Revert "Only check undeclared dependencies on macOS"

This reverts commit fa5245f7adf38833b03e92e42aa5217ac5157773.
This commit is contained in:
Alyssa Ross 2018-03-01 17:30:42 +00:00
parent fa5245f7ad
commit 51b27039be
No known key found for this signature in database
GPG Key ID: 6CF064D149E3ABDB
4 changed files with 42 additions and 49 deletions

View File

@ -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

View File

@ -13,6 +13,7 @@ require "pkg_version"
require "tap" require "tap"
require "keg" require "keg"
require "migrator" require "migrator"
require "os/mac/linkage_checker"
require "extend/ENV" require "extend/ENV"
require "language/python" require "language/python"
@ -1840,7 +1841,16 @@ class Formula
end end
def undeclared_runtime_dependencies 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
# Returns the prefix for a given formula version number. # Returns the prefix for a given formula version number.

View File

@ -685,6 +685,7 @@ describe Formula do
expect(f5.runtime_dependencies.map(&:name)).to eq(["f1", "f4"]) expect(f5.runtime_dependencies.map(&:name)).to eq(["f1", "f4"])
end end
describe "#runtime_dependencies" do
specify "runtime dependencies with optional deps from tap" do specify "runtime dependencies with optional deps from tap" do
tap_loader = double tap_loader = double
@ -707,6 +708,23 @@ describe Formula do
expect(f3.runtime_dependencies.map(&:name)).to eq(["foo/bar/f1", "baz/qux/f2"]) expect(f3.runtime_dependencies.map(&:name)).to eq(["foo/bar/f1", "baz/qux/f2"])
end end
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
specify "requirements" do specify "requirements" do
f1 = formula "f1" do f1 = formula "f1" do
url "f1-1" url "f1-1"

View File

@ -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