#include "msl_verify.hpp" #include namespace openpower { namespace software { namespace image { class MinimumShipLevelTest : public testing::Test { protected: std::string minShipLevel = "v.2.2"; std::unique_ptr minimumShipLevel; virtual void SetUp() { minimumShipLevel = std::make_unique(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); 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 } // namespace software } // namespace openpower