Skip to content

Commit

Permalink
Merge pull request #18674 from Homebrew/kernel-major-versions
Browse files Browse the repository at this point in the history
  • Loading branch information
carlocab authored Oct 31, 2024
2 parents 37dc931 + 42dd0ac commit a7548f0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
11 changes: 11 additions & 0 deletions Library/Homebrew/macos_version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@ def initialize(version)
el_capitan: "10.11",
}.freeze

sig { params(macos_version: MacOSVersion).returns(Version) }
def self.kernel_major_version(macos_version)
version_major = macos_version.major.to_i
if version_major > 10
Version.new((version_major + 9).to_s)
else
version_minor = macos_version.minor.to_i
Version.new((version_minor + 4).to_s)
end
end

sig { params(version: Symbol).returns(T.attached_class) }
def self.from_symbol(version)
str = SYMBOLS.fetch(version) { raise MacOSVersion::Error, version }
Expand Down
12 changes: 12 additions & 0 deletions Library/Homebrew/test/macos_version_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
let(:big_sur_major) { described_class.new("11.0") }
let(:big_sur_update) { described_class.new("11.1") }

describe ".kernel_major_version" do
it "returns the kernel major version" do
expect(described_class.kernel_major_version(version)).to eq "18"
expect(described_class.kernel_major_version(big_sur_major)).to eq "20"
expect(described_class.kernel_major_version(big_sur_update)).to eq "20"
end

it "matches the major version returned by OS.kernel_version", :needs_macos do
expect(described_class.kernel_major_version(OS::Mac.version)).to eq OS.kernel_version.major
end
end

specify "comparison with Symbol" do
expect(version).to be > :high_sierra
expect(version).to eq :mojave
Expand Down

0 comments on commit a7548f0

Please sign in to comment.