| #include "libpldmresponder/base.hpp" |
| |
| #include <string.h> |
| |
| #include <array> |
| |
| #include "libpldm/base.h" |
| |
| #include <gtest/gtest.h> |
| |
| using namespace pldm::responder; |
| |
| TEST(GetPLDMTypes, testGoodRequest) |
| { |
| pldm_msg_payload request{}; |
| pldm_msg response{}; |
| std::array<uint8_t, PLDM_GET_TYPES_RESP_BYTES> responseMsg{}; |
| response.body.payload = responseMsg.data(); |
| response.body.payload_length = responseMsg.size(); |
| getPLDMTypes(&request, &response); |
| // Only base type supported at the moment |
| ASSERT_EQ(response.body.payload[0], 0); |
| ASSERT_EQ(response.body.payload[1], 1); |
| ASSERT_EQ(response.body.payload[2], 0); |
| } |
| |
| TEST(GetPLDMCommands, testGoodRequest) |
| { |
| // Only base type supported at the moment, and commands - |
| // GetPLDMTypes, GetPLDMCommands |
| pldm_msg response{}; |
| std::array<uint8_t, PLDM_GET_COMMANDS_RESP_BYTES> responseMsg{}; |
| response.body.payload = responseMsg.data(); |
| response.body.payload_length = responseMsg.size(); |
| pldm_msg_payload request{}; |
| std::array<uint8_t, 5> requestPayload{}; |
| request.payload = requestPayload.data(); |
| request.payload_length = requestPayload.size(); |
| getPLDMCommands(&request, &response); |
| ASSERT_EQ(response.body.payload[0], 0); |
| ASSERT_EQ(response.body.payload[1], 48); // 48 = 0b110000 |
| ASSERT_EQ(response.body.payload[2], 0); |
| } |
| |
| TEST(GetPLDMCommands, testBadRequest) |
| { |
| pldm_msg response{}; |
| std::array<uint8_t, PLDM_GET_COMMANDS_RESP_BYTES> responseMsg{}; |
| response.body.payload = responseMsg.data(); |
| response.body.payload_length = responseMsg.size(); |
| pldm_msg_payload request{}; |
| std::array<uint8_t, 5> requestPayload{}; |
| |
| request.payload = requestPayload.data(); |
| request.payload[0] = 0xFF; |
| request.payload_length = requestPayload.size(); |
| getPLDMCommands(&request, &response); |
| ASSERT_EQ(response.body.payload[0], PLDM_ERROR_INVALID_PLDM_TYPE); |
| } |