From 4bdb7e9fa07b76816f4984bde658b517eeb60ce2 Mon Sep 17 00:00:00 2001 From: Ayush Ranjan Date: Thu, 6 Jun 2024 10:07:07 -0700 Subject: [PATCH] Allow kernel versions with a + suffix in ParseKernelVersion() This is needed to support kernel versions like 6.1.90+. PiperOrigin-RevId: 640936154 --- test/util/test_util.cc | 2 +- test/util/test_util_test.cc | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/test/util/test_util.cc b/test/util/test_util.cc index d26f273af..877912e1e 100644 --- a/test/util/test_util.cc +++ b/test/util/test_util.cc @@ -100,7 +100,7 @@ bool operator==(const KernelVersion& first, const KernelVersion& second) { PosixErrorOr ParseKernelVersion(absl::string_view vers_str) { KernelVersion version = {}; std::vector values = - absl::StrSplit(vers_str, absl::ByAnyChar(".-")); + absl::StrSplit(vers_str, absl::ByAnyChar(".-+")); if (values.size() == 2) { ASSIGN_OR_RETURN_ERRNO(version.major, Atoi(values[0])); ASSIGN_OR_RETURN_ERRNO(version.minor, Atoi(values[1])); diff --git a/test/util/test_util_test.cc b/test/util/test_util_test.cc index f42100374..cedf5591e 100644 --- a/test/util/test_util_test.cc +++ b/test/util/test_util_test.cc @@ -58,6 +58,9 @@ TEST(KernelVersionParsing, ValidateParsing) { v = ASSERT_NO_ERRNO_AND_VALUE(ParseKernelVersion("4.0")); ASSERT_TRUE(v == KernelVersion({4, 0, 0})); + v = ASSERT_NO_ERRNO_AND_VALUE(ParseKernelVersion("6.1.90+")); + ASSERT_TRUE(v == KernelVersion({6, 1, 90})); + ASSERT_THAT(ParseKernelVersion("4.a"), PosixErrorIs(EINVAL, ::testing::_)); ASSERT_THAT(ParseKernelVersion("3"), PosixErrorIs(EINVAL, ::testing::_)); ASSERT_THAT(ParseKernelVersion(""), PosixErrorIs(EINVAL, ::testing::_));