diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 455874ef5f43d0b7239a0a25fbab5e7e93f3fee9..118b15499507b42444074c76e32a2bfd224ad1e8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -60,6 +60,14 @@ jobs: - name: Run brew man run: brew man --fail-if-changed + - name: Install brew tests dependencies + if: matrix.os == 'macOS-latest' + run: | + brew install subversion + Library/Homebrew/shims/scm/svn --homebrew=print-path + which svn + which svnadmin + - name: Run brew tests run: | # brew tests doesn't like world writable directories diff --git a/Library/Homebrew/test/spec_helper.rb b/Library/Homebrew/test/spec_helper.rb index 0408ea72a47f6fc7e5ff58c2c4dc55f054a7b8a9..406ffc7561305a17ceeeef0a93b35c428fd51dd6 100644 --- a/Library/Homebrew/test/spec_helper.rb +++ b/Library/Homebrew/test/spec_helper.rb @@ -125,17 +125,23 @@ RSpec.configure do |config| end config.before(:each, :needs_svn) do - skip "Subversion is not installed." unless quiet_system "#{HOMEBREW_SHIMS_PATH}/scm/svn", "--version" + svn_shim = HOMEBREW_SHIMS_PATH/"scm/svn" + skip "Subversion is not installed." unless quiet_system svn_shim, "--version" + svn_shim_path = Pathname(Utils.popen_read(svn_shim, "--homebrew=print-path").chomp.presence) svn_paths = PATH.new(ENV["PATH"]) + svn_paths.prepend(svn_shim_path.dirname) + if OS.mac? xcrun_svn = Utils.popen_read("xcrun", "-f", "svn") svn_paths.append(File.dirname(xcrun_svn)) if $CHILD_STATUS.success? && xcrun_svn.present? end svn = which("svn", svn_paths) + skip "svn is not installed." unless svn + svnadmin = which("svnadmin", svn_paths) - skip "Subversion is not installed." if !svn || !svnadmin + skip "svnadmin is not installed." unless svnadmin ENV["PATH"] = PATH.new(ENV["PATH"]) .append(svn.dirname) @@ -143,7 +149,7 @@ RSpec.configure do |config| end config.before(:each, :needs_unzip) do - skip "UnZip is not installed." unless which("unzip") + skip "Unzip is not installed." unless which("unzip") end config.around do |example| diff --git a/Library/Homebrew/test/utils/git_spec.rb b/Library/Homebrew/test/utils/git_spec.rb index 3212eb8bf5a1a356d1d655ddcb8e9a2bf241d4a8..73074226d34a34f671e2196ddf48a02224fa1e0b 100644 --- a/Library/Homebrew/test/utils/git_spec.rb +++ b/Library/Homebrew/test/utils/git_spec.rb @@ -149,14 +149,14 @@ describe Utils::Git do expect { described_class.ensure_installed! }.to raise_error("Git is unavailable") end - it "installs git" do - skip if ENV["HOMEBREW_TEST_GENERIC_OS"] + unless ENV["HOMEBREW_TEST_GENERIC_OS"] + it "installs git" do + expect(described_class).to receive(:available?).and_return(false) + expect(described_class).to receive(:safe_system).with(HOMEBREW_BREW_FILE, "install", "git").and_return(true) + expect(described_class).to receive(:available?).and_return(true) - expect(described_class).to receive(:available?).and_return(false) - expect(described_class).to receive(:safe_system).with(HOMEBREW_BREW_FILE, "install", "git").and_return(true) - expect(described_class).to receive(:available?).and_return(true) - - described_class.ensure_installed! + described_class.ensure_installed! + end end end end