mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
88 lines
2.8 KiB
Ruby
88 lines
2.8 KiB
Ruby
require "hardware"
|
|
|
|
module Hardware
|
|
describe CPU do
|
|
describe "::type" do
|
|
it "returns the current CPU's type as a symbol, or :dunno if it cannot be detected" do
|
|
expect(
|
|
[
|
|
:intel,
|
|
:ppc,
|
|
:dunno,
|
|
],
|
|
).to include(described_class.type)
|
|
end
|
|
end
|
|
|
|
describe "::family" do
|
|
it "returns the current CPU's family name as a symbol, or :dunno if it cannot be detected" do
|
|
skip "Needs an Intel CPU." unless described_class.intel?
|
|
|
|
expect(
|
|
[
|
|
:core,
|
|
:core2,
|
|
:penryn,
|
|
:nehalem,
|
|
:arrandale,
|
|
:sandybridge,
|
|
:ivybridge,
|
|
:haswell,
|
|
:broadwell,
|
|
:skylake,
|
|
:kabylake,
|
|
:dunno,
|
|
],
|
|
).to include(described_class.family)
|
|
end
|
|
end
|
|
|
|
describe "::can_run?" do
|
|
it "reports that Intel machines can run Intel executables" do
|
|
allow(Hardware::CPU).to receive(:type).and_return :intel
|
|
allow(Hardware::CPU).to receive(:bits).and_return 64
|
|
expect(Hardware::CPU.can_run?(:i386)).to be true
|
|
expect(Hardware::CPU.can_run?(:x86_64)).to be true
|
|
end
|
|
|
|
it "reports that PowerPC machines can run PowerPC executables" do
|
|
allow(Hardware::CPU).to receive(:type).and_return :ppc
|
|
allow(Hardware::CPU).to receive(:bits).and_return 64
|
|
expect(Hardware::CPU.can_run?(:ppc)).to be true
|
|
expect(Hardware::CPU.can_run?(:ppc64)).to be true
|
|
end
|
|
|
|
it "reports that 32-bit Intel machines can't run x86_64 executables" do
|
|
allow(Hardware::CPU).to receive(:type).and_return :intel
|
|
allow(Hardware::CPU).to receive(:bits).and_return 32
|
|
expect(Hardware::CPU.can_run?(:x86_64)).to be false
|
|
end
|
|
|
|
it "reports that 32-bit PowerPC machines can't run ppc64 executables" do
|
|
allow(Hardware::CPU).to receive(:type).and_return :ppc
|
|
allow(Hardware::CPU).to receive(:bits).and_return 32
|
|
expect(Hardware::CPU.can_run?(:ppc64)).to be false
|
|
end
|
|
|
|
it "identifies that Intel and PowerPC machines can't run each others' executables" do
|
|
allow(Hardware::CPU).to receive(:type).and_return :ppc
|
|
expect(Hardware::CPU.can_run?(:i386)).to be false
|
|
expect(Hardware::CPU.can_run?(:x86_64)).to be false
|
|
|
|
allow(Hardware::CPU).to receive(:type).and_return :intel
|
|
expect(Hardware::CPU.can_run?(:ppc)).to be false
|
|
expect(Hardware::CPU.can_run?(:ppc64)).to be false
|
|
end
|
|
|
|
it "returns false for unknown CPU types" do
|
|
allow(Hardware::CPU).to receive(:type).and_return :dunno
|
|
expect(Hardware::CPU.can_run?(:i386)).to be false
|
|
end
|
|
|
|
it "returns false for unknown arches" do
|
|
expect(Hardware::CPU.can_run?(:blah)).to be false
|
|
end
|
|
end
|
|
end
|
|
end
|