diff options
author | John Wang <wangzqbj@inspur.com> | 2019-09-16 15:40:21 +0800 |
---|---|---|
committer | John Wang <wangzqbj@inspur.com> | 2019-09-17 08:47:17 +0800 |
commit | b41a57d52c6e5f6673b784a7a94a8dec0787770b (patch) | |
tree | d91dd0c5dc42b3f75546bbb846d7e089fe668657 | |
parent | d05d47254e0dcb7cfe8284ecb8a839c903262122 (diff) | |
download | openpower-pnor-code-mgmt-b41a57d52c6e5f6673b784a7a94a8dec0787770b.tar.gz openpower-pnor-code-mgmt-b41a57d52c6e5f6673b784a7a94a8dec0787770b.zip |
msl: Support for v-xx.xx.xx format version ID
The version ID of the pnor we have released is
similar to the following format.
Inspur-Dubai-v-4.1.01
This change adds support for parsing version ID
in v-xx.xx.xx format
Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: I1a7dd04256d1901e3dafef14baf338b853e2ff97
-rw-r--r-- | msl_verify.cpp | 8 | ||||
-rw-r--r-- | test/msl_verify.cpp | 12 |
2 files changed, 16 insertions, 4 deletions
diff --git a/msl_verify.cpp b/msl_verify.cpp index 1d93613a9..b49b079b2 100644 --- a/msl_verify.cpp +++ b/msl_verify.cpp @@ -57,13 +57,13 @@ void MinimumShipLevel::parse(const std::string& versionStr, Version& version) std::smatch match; version = {0, 0, 0}; - // Match for vX.Y.Z - std::regex regex{"v([0-9]+)\\.([0-9]+)\\.([0-9]+)", std::regex::extended}; + // Match for vX.Y.Z or v-X.Y.Z + std::regex regex{"v-?([0-9]+)\\.([0-9]+)\\.([0-9]+)", std::regex::extended}; if (!std::regex_search(versionStr, match, regex)) { - // Match for vX.Y - std::regex regexShort{"v([0-9]+)\\.([0-9]+)", std::regex::extended}; + // Match for vX.Y or v-X.Y + std::regex regexShort{"v-?([0-9]+)\\.([0-9]+)", std::regex::extended}; if (!std::regex_search(versionStr, match, regexShort)) { log<level::ERR>("Unable to parse PNOR version", diff --git a/test/msl_verify.cpp b/test/msl_verify.cpp index 5fdf50507..a4de09c46 100644 --- a/test/msl_verify.cpp +++ b/test/msl_verify.cpp @@ -71,6 +71,18 @@ TEST_F(MinimumShipLevelTest, parse) EXPECT_EQ(6, version.major); EXPECT_EQ(7, version.minor); EXPECT_EQ(0, version.rev); + + versionStr = "Vendor-Model-v-4.1.01"; + minimumShipLevel->parse(versionStr, version); + EXPECT_EQ(4, version.major); + EXPECT_EQ(1, version.minor); + EXPECT_EQ(1, version.rev); + + versionStr = "Vendor-Model-v-4.1-abc"; + minimumShipLevel->parse(versionStr, version); + EXPECT_EQ(4, version.major); + EXPECT_EQ(1, version.minor); + EXPECT_EQ(0, version.rev); } } // namespace image |