diff --git a/test/meson.build b/test/meson.build
index a9cdd94..4366a2b 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -14,7 +14,7 @@
 
 gtest = dependency('gtest', main: true, disabler: true, required: true)
 gmock = dependency('gmock', disabler: true, required: true)
-pldmd = declare_dependency(sources: '../instance_id.cpp')
+pldmd = declare_dependency(sources: ['../instance_id.cpp', '../utils.cpp'])
 
 tests = [
   'libpldm_base_test',
@@ -30,6 +30,7 @@
   'libpldm_utils_test',
   'pldmd_instanceid_test',
   'pldmd_registration_test',
+  'pldm_utils_test',
 ]
 
 if get_option('oem-ibm').enabled()
diff --git a/test/pldm_utils_test.cpp b/test/pldm_utils_test.cpp
new file mode 100644
index 0000000..b512db9
--- /dev/null
+++ b/test/pldm_utils_test.cpp
@@ -0,0 +1,84 @@
+#include "utils.hpp"
+
+#include <gtest/gtest.h>
+
+using namespace pldm::utils;
+
+TEST(decodeDate, testGooduintToDate)
+{
+    uint64_t data = 20191212115959;
+    uint16_t year = 2019;
+    uint8_t month = 12;
+    uint8_t day = 12;
+    uint8_t hours = 11;
+    uint8_t minutes = 59;
+    uint8_t seconds = 59;
+
+    uint16_t retyear = 0;
+    uint8_t retmonth = 0;
+    uint8_t retday = 0;
+    uint8_t rethours = 0;
+    uint8_t retminutes = 0;
+    uint8_t retseconds = 0;
+
+    auto ret = uintToDate(data, &retyear, &retmonth, &retday, &rethours,
+                          &retminutes, &retseconds);
+
+    EXPECT_EQ(ret, true);
+    EXPECT_EQ(year, retyear);
+    EXPECT_EQ(month, retmonth);
+    EXPECT_EQ(day, retday);
+    EXPECT_EQ(hours, rethours);
+    EXPECT_EQ(minutes, retminutes);
+    EXPECT_EQ(seconds, retseconds);
+}
+
+TEST(decodeDate, testBaduintToDate)
+{
+    uint64_t data = 10191212115959;
+
+    uint16_t retyear = 0;
+    uint8_t retmonth = 0;
+    uint8_t retday = 0;
+    uint8_t rethours = 0;
+    uint8_t retminutes = 0;
+    uint8_t retseconds = 0;
+
+    auto ret = uintToDate(data, &retyear, &retmonth, &retday, &rethours,
+                          &retminutes, &retseconds);
+
+    EXPECT_EQ(ret, false);
+}
+
+TEST(decodeEffecterData, testGoodDecodeEffecterData)
+{
+    std::vector<uint8_t> effecterData = {2, 1, 1, 0, 1, 2};
+    uint16_t effecter_id = 2;
+    set_effecter_state_field stateField0 = {1, 1};
+    set_effecter_state_field stateField1 = {0, 0};
+    set_effecter_state_field stateField2 = {1, 2};
+
+    uint16_t retEffecter_id = 0;
+    std::vector<set_effecter_state_field> stateField = {};
+    auto rc = decodeEffecterData(effecterData, retEffecter_id, stateField);
+
+    EXPECT_EQ(rc, true);
+    EXPECT_EQ(effecter_id, retEffecter_id);
+    EXPECT_EQ(stateField[0].set_request, stateField0.set_request);
+    EXPECT_EQ(stateField[0].effecter_state, stateField0.effecter_state);
+    EXPECT_EQ(stateField[1].set_request, stateField1.set_request);
+    EXPECT_EQ(stateField[1].effecter_state, stateField1.effecter_state);
+    EXPECT_EQ(stateField[2].set_request, stateField2.set_request);
+    EXPECT_EQ(stateField[2].effecter_state, stateField2.effecter_state);
+}
+
+TEST(decodeEffecterData, testBadDecodeEffecterData)
+{
+    std::vector<uint8_t> effecterData = {2, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+    uint16_t retEffecter_id = 0;
+    std::vector<set_effecter_state_field> stateField = {};
+    auto rc = decodeEffecterData(effecterData, retEffecter_id, stateField);
+
+    EXPECT_EQ(rc, false);
+}
