From 5d5daaa09f7aa057fabcf3ae24c60c54d8f96fe2 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Fri, 6 Sep 2024 13:58:32 -0700 Subject: [PATCH 1/2] Use FormulaInstaller OS extensions --- Library/Homebrew/formula_installer.rb | 2 ++ .../Homebrew/test/formula_installer_spec.rb | 21 +++++++++++++ .../test/os/linux/formula_installer_spec.rb | 25 +++++++++++++++ .../test/os/mac/formula_installer_spec.rb | 31 +++++++++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 Library/Homebrew/test/os/linux/formula_installer_spec.rb create mode 100644 Library/Homebrew/test/os/mac/formula_installer_spec.rb diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index eeaaf127d7..a028176c93 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -1546,3 +1546,5 @@ on_request: installed_on_request?, options:) $stderr.puts @requirement_messages end end + +require "extend/os/formula_installer" diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb index d4b6284b3d..43906c1c9e 100644 --- a/Library/Homebrew/test/formula_installer_spec.rb +++ b/Library/Homebrew/test/formula_installer_spec.rb @@ -450,6 +450,27 @@ RSpec.describe FormulaInstaller do end end + describe "#fresh_install" do + subject(:formula_installer) { described_class.new(Testball.new) } + + it "is false by default" do + formula = Testball.new + expect(formula_installer.fresh_install?(formula)).to be false + end + + it "is false in developer mode" do + formula = Testball.new + allow(Homebrew::EnvConfig).to receive_messages(developer?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + + it "is false on outdated releases" do + formula = Testball.new + allow(OS::Mac.version).to receive_messages(outdated_release?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + end + describe "#install_service" do it "works if service is set" do formula = Testball.new diff --git a/Library/Homebrew/test/os/linux/formula_installer_spec.rb b/Library/Homebrew/test/os/linux/formula_installer_spec.rb new file mode 100644 index 0000000000..f5c47599de --- /dev/null +++ b/Library/Homebrew/test/os/linux/formula_installer_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require "formula_installer" +require "test/support/fixtures/testball" + +RSpec.describe FormulaInstaller do + include FileUtils + + subject(:keg) { described_class.new(keg_path) } + + describe "#fresh_install" do + subject(:formula_installer) { described_class.new(Testball.new) } + + it "is true by default" do + formula = Testball.new + expect(formula_installer.fresh_install?(formula)).to be true + end + + it "is false in developer mode" do + formula = Testball.new + allow(Homebrew::EnvConfig).to receive_messages(developer?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + end +end diff --git a/Library/Homebrew/test/os/mac/formula_installer_spec.rb b/Library/Homebrew/test/os/mac/formula_installer_spec.rb new file mode 100644 index 0000000000..21b83da6c3 --- /dev/null +++ b/Library/Homebrew/test/os/mac/formula_installer_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require "formula_installer" +require "test/support/fixtures/testball" + +RSpec.describe FormulaInstaller do + include FileUtils + + subject(:keg) { described_class.new(keg_path) } + + describe "#fresh_install" do + subject(:formula_installer) { described_class.new(Testball.new) } + + it "is true by default" do + formula = Testball.new + expect(formula_installer.fresh_install?(formula)).to be true + end + + it "is false in developer mode" do + formula = Testball.new + allow(Homebrew::EnvConfig).to receive_messages(developer?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + + it "is false on outdated releases" do + formula = Testball.new + allow(OS::Mac.version).to receive_messages(outdated_release?: true) + expect(formula_installer.fresh_install?(formula)).to be false + end + end +end From fedb868a8b860c037c8e4028045b4df12c0a9431 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Fri, 6 Sep 2024 14:16:40 -0700 Subject: [PATCH 2/2] Remove failing tests due to lack of needs_generic --- .../Homebrew/test/formula_installer_spec.rb | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb index 43906c1c9e..d4b6284b3d 100644 --- a/Library/Homebrew/test/formula_installer_spec.rb +++ b/Library/Homebrew/test/formula_installer_spec.rb @@ -450,27 +450,6 @@ RSpec.describe FormulaInstaller do end end - describe "#fresh_install" do - subject(:formula_installer) { described_class.new(Testball.new) } - - it "is false by default" do - formula = Testball.new - expect(formula_installer.fresh_install?(formula)).to be false - end - - it "is false in developer mode" do - formula = Testball.new - allow(Homebrew::EnvConfig).to receive_messages(developer?: true) - expect(formula_installer.fresh_install?(formula)).to be false - end - - it "is false on outdated releases" do - formula = Testball.new - allow(OS::Mac.version).to receive_messages(outdated_release?: true) - expect(formula_installer.fresh_install?(formula)).to be false - end - end - describe "#install_service" do it "works if service is set" do formula = Testball.new