| #include <ipmid/sessionhelper.hpp> |
| |
| #include <gtest/gtest.h> |
| |
| TEST(parseSessionInputPayloadTest, ValidObjectPath) |
| { |
| uint32_t sessionId = 0; |
| uint8_t sessionHandle = 0; |
| std::string objectPath = |
| "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a"; |
| |
| EXPECT_TRUE( |
| parseCloseSessionInputPayload(objectPath, sessionId, sessionHandle)); |
| EXPECT_EQ(0x12a4567d, sessionId); |
| EXPECT_EQ(0x8a, sessionHandle); |
| } |
| |
| TEST(parseSessionInputPayloadTest, InvalidObjectPath) |
| { |
| uint32_t sessionId = 0; |
| uint8_t sessionHandle = 0; |
| // A valid object path will be like |
| // "/xyz/openbmc_project/ipmi/session/channel/sessionId_sessionHandle" |
| // Ex: "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a" |
| // SessionId : 0X12a4567d |
| // SessionHandle: 0X8a |
| std::string objectPath = "/xyz/openbmc_project/ipmi/session/eth0/12a4567d"; |
| |
| EXPECT_FALSE( |
| parseCloseSessionInputPayload(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(parseSessionInputPayloadTest, NoObjectPath) |
| { |
| uint32_t sessionId = 0; |
| uint8_t sessionHandle = 0; |
| std::string objectPath; |
| |
| EXPECT_FALSE( |
| parseCloseSessionInputPayload(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, ValidSessionId) |
| { |
| std::string objectPath = |
| "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a"; |
| uint32_t sessionId = 0x12a4567d; |
| uint8_t sessionHandle = 0; |
| |
| EXPECT_TRUE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, ValidSessionHandle) |
| { |
| std::string objectPath = |
| "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a"; |
| uint32_t sessionId = 0; |
| uint8_t sessionHandle = 0x8a; |
| |
| EXPECT_TRUE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, InvalidSessionId) |
| { |
| std::string objectPath = |
| "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a"; |
| uint32_t sessionId = 0x1234b67d; |
| uint8_t sessionHandle = 0; |
| |
| EXPECT_FALSE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, InvalidSessionHandle) |
| { |
| std::string objectPath = |
| "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a"; |
| uint32_t sessionId = 0; |
| uint8_t sessionHandle = 0x9b; |
| |
| EXPECT_FALSE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, ZeroSessionId_ZeroSessionHandle) |
| { |
| std::string objectPath = |
| "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a"; |
| uint32_t sessionId = 0; |
| uint8_t sessionHandle = 0; |
| |
| EXPECT_FALSE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, InvalidObjectPath) |
| { |
| // A valid object path will be like |
| // "/xyz/openbmc_project/ipmi/session/channel/sessionId_sessionHandle" |
| // Ex: "/xyz/openbmc_project/ipmi/session/eth0/12a4567d_8a" |
| // SessionId : 0X12a4567d |
| // SessionHandle: 0X8a |
| std::string objectPath = "/xyz/openbmc_project/ipmi/session/eth0/12a4567d"; |
| uint32_t sessionId = 0x12a4567d; |
| uint8_t sessionHandle = 0; |
| |
| EXPECT_FALSE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |
| |
| TEST(isSessionObjectMatchedTest, NoObjectPath) |
| { |
| std::string objectPath; |
| uint32_t sessionId = 0x12a4567d; |
| uint8_t sessionHandle = 0x8a; |
| |
| EXPECT_FALSE(isSessionObjectMatched(objectPath, sessionId, sessionHandle)); |
| } |