mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
142 lines
4.6 KiB
Ruby
142 lines
4.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "settings"
|
|
|
|
RSpec.describe Homebrew::SimulateSystem do
|
|
after do
|
|
described_class.clear
|
|
end
|
|
|
|
describe "::simulating_or_running_on_macos?" do
|
|
it "returns true on macOS", :needs_macos do
|
|
described_class.clear
|
|
expect(described_class.simulating_or_running_on_macos?).to be true
|
|
end
|
|
|
|
it "returns false on Linux", :needs_linux do
|
|
described_class.clear
|
|
expect(described_class.simulating_or_running_on_macos?).to be false
|
|
end
|
|
|
|
it "returns false on macOS when simulating Linux", :needs_macos do
|
|
described_class.clear
|
|
described_class.os = :linux
|
|
expect(described_class.simulating_or_running_on_macos?).to be false
|
|
end
|
|
|
|
it "returns true on Linux when simulating a generic macOS version", :needs_linux do
|
|
described_class.clear
|
|
described_class.os = :macos
|
|
expect(described_class.simulating_or_running_on_macos?).to be true
|
|
end
|
|
|
|
it "returns true on Linux when simulating a specific macOS version", :needs_linux do
|
|
described_class.clear
|
|
described_class.os = :monterey
|
|
expect(described_class.simulating_or_running_on_macos?).to be true
|
|
end
|
|
|
|
it "returns true on Linux with HOMEBREW_SIMULATE_MACOS_ON_LINUX", :needs_linux do
|
|
described_class.clear
|
|
ENV["HOMEBREW_SIMULATE_MACOS_ON_LINUX"] = "1"
|
|
expect(described_class.simulating_or_running_on_macos?).to be true
|
|
end
|
|
end
|
|
|
|
describe "::simulating_or_running_on_linux?" do
|
|
it "returns true on Linux", :needs_linux do
|
|
described_class.clear
|
|
expect(described_class.simulating_or_running_on_linux?).to be true
|
|
end
|
|
|
|
it "returns false on macOS", :needs_macos do
|
|
described_class.clear
|
|
expect(described_class.simulating_or_running_on_linux?).to be false
|
|
end
|
|
|
|
it "returns true on macOS when simulating Linux", :needs_macos do
|
|
described_class.clear
|
|
described_class.os = :linux
|
|
expect(described_class.simulating_or_running_on_linux?).to be true
|
|
end
|
|
|
|
it "returns false on Linux when simulating a generic macOS version", :needs_linux do
|
|
described_class.clear
|
|
described_class.os = :macos
|
|
expect(described_class.simulating_or_running_on_linux?).to be false
|
|
end
|
|
|
|
it "returns false on Linux when simulating a specific macOS version", :needs_linux do
|
|
described_class.clear
|
|
described_class.os = :monterey
|
|
expect(described_class.simulating_or_running_on_linux?).to be false
|
|
end
|
|
|
|
it "returns false on Linux with HOMEBREW_SIMULATE_MACOS_ON_LINUX", :needs_linux do
|
|
described_class.clear
|
|
ENV["HOMEBREW_SIMULATE_MACOS_ON_LINUX"] = "1"
|
|
expect(described_class.simulating_or_running_on_linux?).to be false
|
|
end
|
|
end
|
|
|
|
describe "::current_arch" do
|
|
it "returns the current architecture" do
|
|
described_class.clear
|
|
expect(described_class.current_arch).to eq Hardware::CPU.type
|
|
end
|
|
|
|
it "returns the simulated architecture" do
|
|
described_class.clear
|
|
simulated_arch = if Hardware::CPU.arm?
|
|
:intel
|
|
else
|
|
:arm
|
|
end
|
|
described_class.arch = simulated_arch
|
|
expect(described_class.current_arch).to eq simulated_arch
|
|
end
|
|
end
|
|
|
|
describe "::current_os" do
|
|
it "returns the current macOS version on macOS", :needs_macos do
|
|
described_class.clear
|
|
expect(described_class.current_os).to eq MacOS.version.to_sym
|
|
end
|
|
|
|
it "returns `:linux` on Linux", :needs_linux do
|
|
described_class.clear
|
|
expect(described_class.current_os).to eq :linux
|
|
end
|
|
|
|
it "returns `:linux` when simulating Linux on macOS", :needs_macos do
|
|
described_class.clear
|
|
described_class.os = :linux
|
|
expect(described_class.current_os).to eq :linux
|
|
end
|
|
|
|
it "returns `:macos` when simulating a generic macOS version on Linux", :needs_linux do
|
|
described_class.clear
|
|
described_class.os = :macos
|
|
expect(described_class.current_os).to eq :macos
|
|
end
|
|
|
|
it "returns `:macos` when simulating a specific macOS version on Linux", :needs_linux do
|
|
described_class.clear
|
|
described_class.os = :monterey
|
|
expect(described_class.current_os).to eq :monterey
|
|
end
|
|
|
|
it "returns the current macOS version on macOS with HOMEBREW_SIMULATE_MACOS_ON_LINUX", :needs_macos do
|
|
described_class.clear
|
|
ENV["HOMEBREW_SIMULATE_MACOS_ON_LINUX"] = "1"
|
|
expect(described_class.current_os).to eq MacOS.version.to_sym
|
|
end
|
|
|
|
it "returns `:macos` on Linux with HOMEBREW_SIMULATE_MACOS_ON_LINUX", :needs_linux do
|
|
described_class.clear
|
|
ENV["HOMEBREW_SIMULATE_MACOS_ON_LINUX"] = "1"
|
|
expect(described_class.current_os).to eq :macos
|
|
end
|
|
end
|
|
end
|