pldm: Moving utils function into the common directory
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I4fbd0da4bc6f27e9a9ed711962bd8737d8b55ebf
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);
+}