Merge pull request #5639 from MikeMcQuaid/os-mac-cpu-requires

version: add CPU tests.
This commit is contained in:
Mike McQuaid 2019-01-28 20:02:19 +00:00 committed by GitHub
commit d18bab042b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 3 deletions

View File

@ -1,6 +1,6 @@
module Hardware
def self.oldest_cpu
if MacOS.version >= :mojave
def self.oldest_cpu(version = MacOS.version)
if version >= :mojave
:nehalem
else
generic_oldest_cpu

View File

@ -134,7 +134,7 @@ module Hardware
end
end
def oldest_cpu
def oldest_cpu(_version = nil)
if Hardware::CPU.intel?
if Hardware::CPU.is_64_bit?
:core2

View File

@ -38,6 +38,17 @@ module OS
def pretty_name
to_sym.to_s.split("_").map(&:capitalize).join(" ")
end
# For OS::Mac::Version compatability
def requires_nehalem_cpu?
Hardware.oldest_cpu(self) == :nehalem
end
# https://en.wikipedia.org/wiki/Nehalem_(microarchitecture)
# Ensure any extra methods are also added to version/null.rb
alias requires_sse4? requires_nehalem_cpu?
alias requires_sse41? requires_nehalem_cpu?
alias requires_sse42? requires_nehalem_cpu?
alias requires_popcnt? requires_nehalem_cpu?
end
end
end

View File

@ -46,4 +46,9 @@ describe OS::Mac::Version do
expect(described_class.new("10.14").pretty_name).to eq("Mojave")
expect(described_class.new("10.10").pretty_name).to eq("Yosemite")
end
specify "#requires_nehalem_cpu?" do
expect(described_class.new("10.14").requires_nehalem_cpu?).to be true
expect(described_class.new("10.12").requires_nehalem_cpu?).to be false
end
end

View File

@ -26,6 +26,15 @@ class Version
true
end
# For OS::Mac::Version compatability
def requires_nehalem_cpu?
false
end
alias_method :requires_sse4?, :requires_nehalem_cpu?
alias_method :requires_sse41?, :requires_nehalem_cpu?
alias_method :requires_sse42?, :requires_nehalem_cpu?
alias_method :requires_popcnt?, :requires_nehalem_cpu?
def to_f
Float::NAN
end