From 16141e7effe453cfe94ae274dadaf4b3ecf6767a Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Mon, 4 May 2020 17:16:39 +0100 Subject: [PATCH] os/mac/software_spec: fix argument error in valid use case --- .../Homebrew/extend/os/mac/software_spec.rb | 2 +- Library/Homebrew/test/os/mac/formula_spec.rb | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/extend/os/mac/software_spec.rb b/Library/Homebrew/extend/os/mac/software_spec.rb index d4f98d208e..e3c1de519f 100644 --- a/Library/Homebrew/extend/os/mac/software_spec.rb +++ b/Library/Homebrew/extend/os/mac/software_spec.rb @@ -11,7 +11,7 @@ class SoftwareSpec deps = Hash[*bounds.shift] end - bounds.transform_values! { |v| MacOS::Version.from_symbol(v) } + bounds = bounds.transform_values { |v| MacOS::Version.from_symbol(v) } if MacOS.version >= bounds[:since] @uses_from_macos_elements << deps else diff --git a/Library/Homebrew/test/os/mac/formula_spec.rb b/Library/Homebrew/test/os/mac/formula_spec.rb index 289703cfdd..c966aef3d0 100644 --- a/Library/Homebrew/test/os/mac/formula_spec.rb +++ b/Library/Homebrew/test/os/mac/formula_spec.rb @@ -3,6 +3,43 @@ require "formula" describe Formula do + describe "#uses_from_macos" do + before do + allow(OS).to receive(:mac?).and_return(true) + allow(OS::Mac).to receive(:version).and_return(OS::Mac::Version.from_symbol(:sierra)) + end + + it "adds a macOS dependency to all specs if the OS version meets requirements" do + f = formula "foo" do + url "foo-1.0" + + uses_from_macos("foo", since: :el_capitan) + end + + expect(f.class.stable.deps).to be_empty + expect(f.class.devel.deps).to be_empty + expect(f.class.head.deps).to be_empty + expect(f.class.stable.uses_from_macos_elements.first).to eq("foo") + expect(f.class.devel.uses_from_macos_elements.first).to eq("foo") + expect(f.class.head.uses_from_macos_elements.first).to eq("foo") + end + + it "doesn't add a macOS dependency to any spec if the OS version doesn't meet requirements" do + f = formula "foo" do + url "foo-1.0" + + uses_from_macos("foo", since: :high_sierra) + end + + expect(f.class.stable.deps.first.name).to eq("foo") + expect(f.class.devel.deps.first.name).to eq("foo") + expect(f.class.head.deps.first.name).to eq("foo") + expect(f.class.stable.uses_from_macos_elements).to be_empty + expect(f.class.devel.uses_from_macos_elements).to be_empty + expect(f.class.head.uses_from_macos_elements).to be_empty + end + end + describe "#on_macos" do it "defines an url on macos only" do f = formula do