diagnostic: add doctor check for CPU arch on Linux

Co-Authored-By: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
Jonathan Chang 2020-03-13 11:39:27 +11:00
parent f5ba503aaa
commit 57109a175a
2 changed files with 19 additions and 0 deletions

View File

@ -2,6 +2,7 @@
require "tempfile"
require "utils/shell"
require "hardware"
require "os/linux/diagnostic"
require "os/linux/glibc"
require "os/linux/kernel"
@ -13,6 +14,7 @@ module Homebrew
%w[
check_glibc_minimum_version
check_kernel_minimum_version
check_supported_architecture
].freeze
end
@ -71,6 +73,16 @@ module Homebrew
EOS
end
def check_supported_architecture
return if Hardware::CPU.arch == :x86_64
<<~EOS
Your CPU architecture (#{Hardware::CPU.arch}) is not supported. We only support
x86_64 CPU architectures. You will be unable to use binary packages (bottles).
#{please_create_pull_requests}
EOS
end
def check_glibc_minimum_version
return unless OS::Linux::Glibc.below_minimum_version?

View File

@ -3,6 +3,13 @@
require "diagnostic"
describe Homebrew::Diagnostic::Checks do
specify "#check_supported_architecture" do
allow(Hardware::CPU).to receive(:type).and_return(:arm64)
expect(subject.check_supported_architecture)
.to match(/Your CPU architecture .+ is not supported/)
end
specify "#check_glibc_minimum_version" do
allow(OS::Linux::Glibc).to receive(:below_minimum_version?).and_return(true)