libpldm : Add encode API for QueryDeviceIdentifiers cmd

QueryDeviceIdentifiers command is used by update agent to obtain the
firmware identifiers for the fimrware device and its defined in DSP0267
Version 1.1.0 sec:10.1.

Tested: Unit tests passed

Signed-off-by: gokulsanker <gokul.sanker.v.g@intel.com>
Change-Id: I472e85414b1a04b550b88c3e6058b86efb9b89b1
diff --git a/libpldm/tests/libpldm_firmware_update_test.cpp b/libpldm/tests/libpldm_firmware_update_test.cpp
new file mode 100644
index 0000000..8387b77
--- /dev/null
+++ b/libpldm/tests/libpldm_firmware_update_test.cpp
@@ -0,0 +1,22 @@
+#include "libpldm/base.h"

+#include "libpldm/firmware_update.h"

+

+#include <gtest/gtest.h>

+

+constexpr auto hdrSize = sizeof(pldm_msg_hdr);

+

+TEST(QueryDeviceIdentifiers, goodPathEncodeRequest)

+{

+    std::array<uint8_t, sizeof(pldm_msg_hdr)> requestMsg{};

+    auto requestPtr = reinterpret_cast<pldm_msg*>(requestMsg.data());

+

+    uint8_t instanceId = 0x01;

+

+    auto rc = encode_query_device_identifiers_req(

+        instanceId, PLDM_QUERY_DEVICE_IDENTIFIERS_REQ_BYTES, requestPtr);

+    EXPECT_EQ(rc, PLDM_SUCCESS);

+    EXPECT_EQ(requestPtr->hdr.request, PLDM_REQUEST);

+    EXPECT_EQ(requestPtr->hdr.instance_id, instanceId);

+    EXPECT_EQ(requestPtr->hdr.type, PLDM_FWUP);

+    EXPECT_EQ(requestPtr->hdr.command, PLDM_QUERY_DEVICE_IDENTIFIERS);

+}