1*3b1b427cSWilly Tu #include "commands.hpp" 2*3b1b427cSWilly Tu #include "flash_size.hpp" 3*3b1b427cSWilly Tu #include "handler_mock.hpp" 4*3b1b427cSWilly Tu 5*3b1b427cSWilly Tu #include <cstdint> 6*3b1b427cSWilly Tu #include <cstring> 7*3b1b427cSWilly Tu #include <string> 8*3b1b427cSWilly Tu #include <vector> 9*3b1b427cSWilly Tu 10*3b1b427cSWilly Tu #include <gtest/gtest.h> 11*3b1b427cSWilly Tu 12*3b1b427cSWilly Tu #define MAX_IPMI_BUFFER 64 13*3b1b427cSWilly Tu 14*3b1b427cSWilly Tu using ::testing::Return; 15*3b1b427cSWilly Tu 16*3b1b427cSWilly Tu namespace google 17*3b1b427cSWilly Tu { 18*3b1b427cSWilly Tu namespace ipmi 19*3b1b427cSWilly Tu { 20*3b1b427cSWilly Tu 21*3b1b427cSWilly Tu TEST(FlashSizeCommandTest, InvalidCommandLength) 22*3b1b427cSWilly Tu { 23*3b1b427cSWilly Tu // GetFlashSizeRequest is one byte, let's send 0. 24*3b1b427cSWilly Tu std::vector<std::uint8_t> request = {}; 25*3b1b427cSWilly Tu size_t dataLen = request.size(); 26*3b1b427cSWilly Tu std::uint8_t reply[MAX_IPMI_BUFFER]; 27*3b1b427cSWilly Tu 28*3b1b427cSWilly Tu HandlerMock hMock; 29*3b1b427cSWilly Tu EXPECT_EQ(IPMI_CC_REQ_DATA_LEN_INVALID, 30*3b1b427cSWilly Tu getFlashSize(request.data(), reply, &dataLen, &hMock)); 31*3b1b427cSWilly Tu } 32*3b1b427cSWilly Tu 33*3b1b427cSWilly Tu TEST(FlashSizeCommandTest, ValidRequest) 34*3b1b427cSWilly Tu { 35*3b1b427cSWilly Tu std::vector<std::uint8_t> request = {SysOEMCommands::SysGetFlashSize}; 36*3b1b427cSWilly Tu size_t dataLen = request.size(); 37*3b1b427cSWilly Tu std::uint8_t reply[MAX_IPMI_BUFFER]; 38*3b1b427cSWilly Tu uint32_t flashSize = 5422312; // 0x52BCE8 39*3b1b427cSWilly Tu 40*3b1b427cSWilly Tu HandlerMock hMock; 41*3b1b427cSWilly Tu EXPECT_CALL(hMock, getFlashSize()).WillOnce(Return(flashSize)); 42*3b1b427cSWilly Tu EXPECT_EQ(IPMI_CC_OK, 43*3b1b427cSWilly Tu getFlashSize(request.data(), reply, &dataLen, &hMock)); 44*3b1b427cSWilly Tu EXPECT_EQ(dataLen, 5); 45*3b1b427cSWilly Tu EXPECT_EQ(reply[4], 0); 46*3b1b427cSWilly Tu EXPECT_EQ(reply[3], 0x52); 47*3b1b427cSWilly Tu EXPECT_EQ(reply[2], 0xBC); 48*3b1b427cSWilly Tu EXPECT_EQ(reply[1], 0xE8); 49*3b1b427cSWilly Tu } 50*3b1b427cSWilly Tu 51*3b1b427cSWilly Tu } // namespace ipmi 52*3b1b427cSWilly Tu } // namespace google 53