requester: Use return code instead of throwing exception
The coroutine API should only forward error code and response data
to the caller when sends/receives PLDM message instead check the
response and thrown exception.
The `sendRecvMsg` API will response tuple of error code, response and
response length as below:
+ [error_code, _, _] if registerRequest fails with `error_code`.
+ [PLDM_ERROR_NOT_READY, nullptr, 0] if the request is timed out.
+ [PLDM_SUCCESS, resp, len] if succeeded.
Signed-off-by: Khang Nguyen Duy <khangng@amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Id8262d147e9fed50af8f55f1c611a3a3b153b6e3
diff --git a/requester/test/handler_test.cpp b/requester/test/handler_test.cpp
index bff08ca..4ac7861 100644
--- a/requester/test/handler_test.cpp
+++ b/requester/test/handler_test.cpp
@@ -167,13 +167,14 @@
pldm::Request request(sizeof(pldm_msg_hdr) + sizeof(uint8_t), 0);
const pldm_msg* responseMsg;
size_t responseLen;
+ int rc = PLDM_SUCCESS;
auto requestPtr = reinterpret_cast<pldm_msg*>(request.data());
requestPtr->hdr.instance_id = instanceId;
try
{
- std::tie(responseMsg, responseLen) =
+ std::tie(rc, responseMsg, responseLen) =
co_await reqHandler.sendRecvMsg(eid, std::move(request));
}
catch (...)
@@ -245,7 +246,7 @@
auto rc = encode_get_tid_req(instanceId, requestMsg);
EXPECT_EQ(rc, PLDM_SUCCESS);
- std::tie(responseMsg, responseLen) =
+ std::tie(rc, responseMsg, responseLen) =
co_await handler.sendRecvMsg(eid, std::move(request));
EXPECT_NE(responseLen, 0);