Merge pull request #15607 from MikeMcQuaid/eval_all_api
dependency: use formula name.
This commit is contained in:
commit
36fc91b7c1
@ -79,6 +79,11 @@ class Dependency
|
|||||||
new(*Marshal.load(marshaled)) # rubocop:disable Security/MarshalLoad
|
new(*Marshal.load(marshaled)) # rubocop:disable Security/MarshalLoad
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { params(formula: Formula).returns(T.self_type) }
|
||||||
|
def dup_with_formula_name(formula)
|
||||||
|
self.class.new(formula.full_name.to_s, tags, env_proc, option_names)
|
||||||
|
end
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
# Expand the dependencies of each dependent recursively, optionally yielding
|
# Expand the dependencies of each dependent recursively, optionally yielding
|
||||||
# `[dependent, dep]` pairs to allow callers to apply arbitrary filters to
|
# `[dependent, dep]` pairs to allow callers to apply arbitrary filters to
|
||||||
@ -112,7 +117,11 @@ class Dependency
|
|||||||
else
|
else
|
||||||
next if @expand_stack.include? dep.name
|
next if @expand_stack.include? dep.name
|
||||||
|
|
||||||
expanded_deps.concat(expand(dep.to_formula, cache_key: cache_key, &block))
|
dep_formula = dep.to_formula
|
||||||
|
expanded_deps.concat(expand(dep_formula, cache_key: cache_key, &block))
|
||||||
|
|
||||||
|
# Fixes names for renamed/aliased formulae.
|
||||||
|
dep = dep.dup_with_formula_name(dep_formula)
|
||||||
expanded_deps << dep
|
expanded_deps << dep
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -5,7 +5,8 @@ require "dependency"
|
|||||||
describe Dependency do
|
describe Dependency do
|
||||||
def build_dep(name, tags = [], deps = [])
|
def build_dep(name, tags = [], deps = [])
|
||||||
dep = described_class.new(name.to_s, tags)
|
dep = described_class.new(name.to_s, tags)
|
||||||
allow(dep).to receive(:to_formula).and_return(instance_double(Formula, deps: deps, name: name))
|
allow(dep).to receive(:to_formula).and_return \
|
||||||
|
instance_double(Formula, deps: deps, name: name, full_name: name)
|
||||||
dep
|
dep
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -43,7 +44,8 @@ describe Dependency do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "preserves dependency order" do
|
it "preserves dependency order" do
|
||||||
allow(foo).to receive(:to_formula).and_return(instance_double(Formula, name: "f", deps: [qux, baz]))
|
allow(foo).to receive(:to_formula).and_return \
|
||||||
|
instance_double(Formula, name: "foo", full_name: "foo", deps: [qux, baz])
|
||||||
expect(described_class.expand(formula)).to eq([qux, baz, foo, bar])
|
expect(described_class.expand(formula)).to eq([qux, baz, foo, bar])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -74,7 +76,8 @@ describe Dependency do
|
|||||||
it "merges dependencies and preserves env_proc" do
|
it "merges dependencies and preserves env_proc" do
|
||||||
env_proc = double
|
env_proc = double
|
||||||
dep = described_class.new("foo", [], env_proc)
|
dep = described_class.new("foo", [], env_proc)
|
||||||
allow(dep).to receive(:to_formula).and_return(instance_double(Formula, deps: [], name: "foo"))
|
allow(dep).to receive(:to_formula).and_return \
|
||||||
|
instance_double(Formula, deps: [], name: "foo", full_name: "foo")
|
||||||
deps.replace([dep])
|
deps.replace([dep])
|
||||||
expect(described_class.expand(formula).first.env_proc).to eq(env_proc)
|
expect(described_class.expand(formula).first.env_proc).to eq(env_proc)
|
||||||
end
|
end
|
||||||
@ -124,8 +127,9 @@ describe Dependency do
|
|||||||
it "doesn't raise an error when a dependency is cyclic" do
|
it "doesn't raise an error when a dependency is cyclic" do
|
||||||
foo = build_dep(:foo)
|
foo = build_dep(:foo)
|
||||||
bar = build_dep(:bar, [], [foo])
|
bar = build_dep(:bar, [], [foo])
|
||||||
allow(foo).to receive(:to_formula).and_return(instance_double(Formula, deps: [bar], name: foo.name))
|
allow(foo).to receive(:to_formula).and_return \
|
||||||
f = instance_double(Formula, name: "f", deps: [foo, bar])
|
instance_double(Formula, deps: [bar], name: foo.name, full_name: foo.name)
|
||||||
|
f = instance_double(Formula, name: "f", full_name: "f", deps: [foo, bar])
|
||||||
expect { described_class.expand(f) }.not_to raise_error
|
expect { described_class.expand(f) }.not_to raise_error
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -829,7 +829,9 @@ describe Formula do
|
|||||||
|
|
||||||
allow(tap_loader).to receive(:get_formula).and_raise(RuntimeError, "tried resolving tap formula")
|
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)
|
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")
|
|
||||||
|
f2_path = Tap.new("baz", "qux").path/"Formula/f2.rb"
|
||||||
|
stub_formula_loader(formula("f2", path: f2_path) { url("f2-1.0") }, "baz/qux/f2")
|
||||||
|
|
||||||
f3 = formula "f3" do
|
f3 = formula "f3" do
|
||||||
url "f3-1.0"
|
url "f3-1.0"
|
||||||
@ -840,7 +842,9 @@ describe Formula do
|
|||||||
|
|
||||||
expect(f3.runtime_dependencies.map(&:name)).to eq(["baz/qux/f2"])
|
expect(f3.runtime_dependencies.map(&:name)).to eq(["baz/qux/f2"])
|
||||||
|
|
||||||
stub_formula_loader(formula("f1") { url("f1-1.0") }, "foo/bar/f1")
|
f1_path = Tap.new("foo", "bar").path/"Formula/f1.rb"
|
||||||
|
stub_formula_loader(formula("f1", path: f1_path) { url("f1-1.0") }, "foo/bar/f1")
|
||||||
|
|
||||||
f3.build = BuildOptions.new(Options.create(["--with-f1"]), f3.options)
|
f3.build = BuildOptions.new(Options.create(["--with-f1"]), f3.options)
|
||||||
|
|
||||||
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"])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user