summaryrefslogtreecommitdiffstats
path: root/test/msl_verify.cpp
diff options
context:
space:
mode:
authorAdriana Kobylak <anoo@us.ibm.com>2018-10-09 15:26:44 -0500
committerAdriana Kobylak <anoo@us.ibm.com>2018-10-17 08:27:25 -0500
commit4772a944dc93438752af5deee1dd2350c8c69389 (patch)
tree383c171085430e9b37832f2c7d7b9b34841e7a41 /test/msl_verify.cpp
parent139604e561c932cb30262ae08ac3b9383b1745a2 (diff)
downloadopenpower-pnor-code-mgmt-4772a944dc93438752af5deee1dd2350c8c69389.tar.gz
openpower-pnor-code-mgmt-4772a944dc93438752af5deee1dd2350c8c69389.zip
msl_verify: Initial commit
Create a new binary that checks the msl (minimum ship level) of the PNOR and logs an error message if the version on the system is older. The msl can be specified via a config flag. Change-Id: I6f477400f7a8cf56557bd0caf5d6e08d73320028 Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
Diffstat (limited to 'test/msl_verify.cpp')
-rw-r--r--test/msl_verify.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/test/msl_verify.cpp b/test/msl_verify.cpp
new file mode 100644
index 000000000..5fdf50507
--- /dev/null
+++ b/test/msl_verify.cpp
@@ -0,0 +1,78 @@
+#include "msl_verify.hpp"
+
+#include <gtest/gtest.h>
+
+namespace openpower
+{
+namespace software
+{
+namespace image
+{
+
+class MinimumShipLevelTest : public testing::Test
+{
+ protected:
+ std::string minShipLevel = "v.2.2";
+ std::unique_ptr<MinimumShipLevel> minimumShipLevel;
+
+ virtual void SetUp()
+ {
+ minimumShipLevel = std::make_unique<MinimumShipLevel>(minShipLevel);
+ }
+};
+
+TEST_F(MinimumShipLevelTest, compare)
+{
+ MinimumShipLevel::Version min;
+ MinimumShipLevel::Version actual;
+
+ min = {3, 5, 7};
+
+ // actual = min
+ actual = {3, 5, 7};
+ EXPECT_EQ(0, minimumShipLevel->compare(actual, min));
+
+ // actual < min
+ actual = {3, 5, 6};
+ EXPECT_EQ(-1, minimumShipLevel->compare(actual, min));
+ actual = {3, 4, 7};
+ EXPECT_EQ(-1, minimumShipLevel->compare(actual, min));
+ actual = {2, 5, 7};
+ EXPECT_EQ(-1, minimumShipLevel->compare(actual, min));
+
+ // actual > min
+ actual = {3, 5, 8};
+ EXPECT_EQ(1, minimumShipLevel->compare(actual, min));
+ actual = {3, 6, 7};
+ EXPECT_EQ(1, minimumShipLevel->compare(actual, min));
+ actual = {4, 5, 7};
+ EXPECT_EQ(1, minimumShipLevel->compare(actual, min));
+}
+
+TEST_F(MinimumShipLevelTest, parse)
+{
+ MinimumShipLevel::Version version;
+ std::string versionStr;
+
+ versionStr = "nomatch-1.2.3-abc";
+ minimumShipLevel->parse(versionStr, version);
+ EXPECT_EQ(0, version.major);
+ EXPECT_EQ(0, version.minor);
+ EXPECT_EQ(0, version.rev);
+
+ versionStr = "xyzformat-v1.2.3-4.5abc";
+ minimumShipLevel->parse(versionStr, version);
+ EXPECT_EQ(1, version.major);
+ EXPECT_EQ(2, version.minor);
+ EXPECT_EQ(3, version.rev);
+
+ versionStr = "xyformat-system-v6.7-abc";
+ minimumShipLevel->parse(versionStr, version);
+ EXPECT_EQ(6, version.major);
+ EXPECT_EQ(7, version.minor);
+ EXPECT_EQ(0, version.rev);
+}
+
+} // namespace image
+} // namespace software
+} // namespace openpower
OpenPOWER on IntegriCloud