Skip to content

Commit a7548f0

Browse files
authored
Merge pull request #18674 from Homebrew/kernel-major-versions
2 parents 37dc931 + 42dd0ac commit a7548f0

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

Library/Homebrew/macos_version.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,17 @@ def initialize(version)
3131
el_capitan: "10.11",
3232
}.freeze
3333

34+
sig { params(macos_version: MacOSVersion).returns(Version) }
35+
def self.kernel_major_version(macos_version)
36+
version_major = macos_version.major.to_i
37+
if version_major > 10
38+
Version.new((version_major + 9).to_s)
39+
else
40+
version_minor = macos_version.minor.to_i
41+
Version.new((version_minor + 4).to_s)
42+
end
43+
end
44+
3445
sig { params(version: Symbol).returns(T.attached_class) }
3546
def self.from_symbol(version)
3647
str = SYMBOLS.fetch(version) { raise MacOSVersion::Error, version }

Library/Homebrew/test/macos_version_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@
77
let(:big_sur_major) { described_class.new("11.0") }
88
let(:big_sur_update) { described_class.new("11.1") }
99

10+
describe ".kernel_major_version" do
11+
it "returns the kernel major version" do
12+
expect(described_class.kernel_major_version(version)).to eq "18"
13+
expect(described_class.kernel_major_version(big_sur_major)).to eq "20"
14+
expect(described_class.kernel_major_version(big_sur_update)).to eq "20"
15+
end
16+
17+
it "matches the major version returned by OS.kernel_version", :needs_macos do
18+
expect(described_class.kernel_major_version(OS::Mac.version)).to eq OS.kernel_version.major
19+
end
20+
end
21+
1022
specify "comparison with Symbol" do
1123
expect(version).to be > :high_sierra
1224
expect(version).to eq :mojave

0 commit comments

Comments
 (0)