diff --git a/test/Makefile.am b/test/Makefile.am
index 6dcba30..3dc6960 100755
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -27,7 +27,9 @@
 	-lssl \
 	-lcrypto
 
-utest_SOURCES = utest.cpp
+utest_SOURCES = \
+	utest.cpp \
+	msl_verify.cpp
 utest_LDADD = \
 	$(top_builddir)/openpower_update_manager-activation.o \
 	$(top_builddir)/openpower_update_manager-version.o \
@@ -36,4 +38,5 @@
 	$(top_builddir)/openpower_update_manager-item_updater.o \
 	$(top_builddir)/org/openbmc/Associations/openpower_update_manager-server.o \
 	$(top_builddir)/image_verify.cpp \
+	$(top_builddir)/msl_verify.cpp \
 	-lstdc++fs
diff --git a/test/msl_verify.cpp b/test/msl_verify.cpp
new file mode 100644
index 0000000..5fdf505
--- /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
