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
 | 
			
		||||
  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
 | 
			
		||||
    # Expand the dependencies of each dependent recursively, optionally yielding
 | 
			
		||||
    # `[dependent, dep]` pairs to allow callers to apply arbitrary filters to
 | 
			
		||||
@ -112,7 +117,11 @@ class Dependency
 | 
			
		||||
        else
 | 
			
		||||
          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
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,8 @@ require "dependency"
 | 
			
		||||
describe Dependency do
 | 
			
		||||
  def build_dep(name, tags = [], deps = [])
 | 
			
		||||
    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
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@ -43,7 +44,8 @@ describe Dependency do
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    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])
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
@ -74,7 +76,8 @@ describe Dependency do
 | 
			
		||||
  it "merges dependencies and preserves env_proc" do
 | 
			
		||||
    env_proc = double
 | 
			
		||||
    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])
 | 
			
		||||
    expect(described_class.expand(formula).first.env_proc).to eq(env_proc)
 | 
			
		||||
  end
 | 
			
		||||
@ -124,8 +127,9 @@ describe Dependency do
 | 
			
		||||
  it "doesn't raise an error when a dependency is cyclic" do
 | 
			
		||||
    foo = build_dep(:foo)
 | 
			
		||||
    bar = build_dep(:bar, [], [foo])
 | 
			
		||||
    allow(foo).to receive(:to_formula).and_return(instance_double(Formula, deps: [bar], name: foo.name))
 | 
			
		||||
    f = instance_double(Formula, name: "f", deps: [foo, bar])
 | 
			
		||||
    allow(foo).to receive(:to_formula).and_return \
 | 
			
		||||
      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
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -829,7 +829,9 @@ describe Formula do
 | 
			
		||||
 | 
			
		||||
      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")
 | 
			
		||||
 | 
			
		||||
      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
 | 
			
		||||
        url "f3-1.0"
 | 
			
		||||
@ -840,7 +842,9 @@ describe Formula do
 | 
			
		||||
 | 
			
		||||
      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)
 | 
			
		||||
 | 
			
		||||
      expect(f3.runtime_dependencies.map(&:name)).to eq(["foo/bar/f1", "baz/qux/f2"])
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user