summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Wang <wangzqbj@inspur.com>2019-09-16 15:40:21 +0800
committerJohn Wang <wangzqbj@inspur.com>2019-09-17 08:47:17 +0800
commitb41a57d52c6e5f6673b784a7a94a8dec0787770b (patch)
treed91dd0c5dc42b3f75546bbb846d7e089fe668657
parentd05d47254e0dcb7cfe8284ecb8a839c903262122 (diff)
downloadopenpower-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.cpp8
-rw-r--r--test/msl_verify.cpp12
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
OpenPOWER on IntegriCloud