Added encode API for SetTID cmd
Added encode API for SetTID command(0x01) which is defined in
DSP0240 Version 1.1.0 sec:8.1.1.
Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: Ia2d5c76e8ad545e794c72f5963556f1f0e6357fc
diff --git a/tests/libpldm_base_test.cpp b/tests/libpldm_base_test.cpp
index b3b1383..cb36663 100644
--- a/tests/libpldm_base_test.cpp
+++ b/tests/libpldm_base_test.cpp
@@ -758,3 +758,37 @@
rc = encode_cc_only_resp(0, 1, 2, 3, nullptr);
EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
}
+
+TEST(SetTID, testGoodEncodeRequest)
+{
+ uint8_t instanceId = 0;
+ uint8_t tid = 0x01;
+ std::array<uint8_t, sizeof(pldm_msg_hdr) + sizeof(tid)> requestMsg{};
+ auto request = reinterpret_cast<pldm_msg*>(requestMsg.data());
+
+ auto rc = encode_set_tid_req(instanceId, tid, request);
+ ASSERT_EQ(rc, PLDM_SUCCESS);
+
+ EXPECT_EQ(request->hdr.command, PLDM_SET_TID);
+ EXPECT_EQ(request->hdr.type, PLDM_BASE);
+ EXPECT_EQ(request->hdr.request, 1);
+ EXPECT_EQ(request->hdr.datagram, 0);
+ EXPECT_EQ(request->hdr.instance_id, instanceId);
+ EXPECT_EQ(0, memcmp(request->payload, &tid, sizeof(tid)));
+}
+
+TEST(SetTID, testBadEncodeRequest)
+{
+ uint8_t tid = 0x01;
+ std::array<uint8_t, sizeof(pldm_msg_hdr) + sizeof(tid)> requestMsg{};
+ auto request = reinterpret_cast<pldm_msg*>(requestMsg.data());
+
+ auto rc = encode_set_tid_req(0, tid, nullptr);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
+
+ rc = encode_set_tid_req(0, 0, request);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
+
+ rc = encode_set_tid_req(0, 0xff, request);
+ EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
+}