1067ece15SWilly Tu #include "helper.hpp" 2067ece15SWilly Tu 3067ece15SWilly Tu #include <ipmid/api-types.hpp> 452509572SPatrick Williams 5067ece15SWilly Tu #include <optional> 6067ece15SWilly Tu #include <span> 7067ece15SWilly Tu #include <tuple> 8067ece15SWilly Tu #include <utility> 9067ece15SWilly Tu #include <vector> 10067ece15SWilly Tu 11067ece15SWilly Tu #include <gtest/gtest.h> 12067ece15SWilly Tu 13067ece15SWilly Tu namespace blobs 14067ece15SWilly Tu { validateReply(ipmi::RspType<std::vector<uint8_t>> reply,bool hasData)15*e0c41de4SPatrick Williamsstd::vector<std::uint8_t> validateReply( 16*e0c41de4SPatrick Williams ipmi::RspType<std::vector<uint8_t>> reply, bool hasData) 17067ece15SWilly Tu { 18067ece15SWilly Tu // Reply is in the form of 19067ece15SWilly Tu // std::tuple<ipmi::Cc, std::optional<std::tuple<RetTypes...>>> 20067ece15SWilly Tu EXPECT_EQ(::ipmi::ccSuccess, std::get<0>(reply)); 21067ece15SWilly Tu 22067ece15SWilly Tu auto actualReply = std::get<1>(reply); 23067ece15SWilly Tu EXPECT_TRUE(actualReply.has_value()); 247509f4e1SWilly Tu if (!actualReply.has_value()) 257509f4e1SWilly Tu return std::vector<uint8_t>{}; 26067ece15SWilly Tu 27067ece15SWilly Tu auto data = std::get<0>(*actualReply); 28067ece15SWilly Tu EXPECT_EQ(hasData, !data.empty()); 29067ece15SWilly Tu 30067ece15SWilly Tu return hasData ? data : std::vector<uint8_t>{}; 31067ece15SWilly Tu } 32067ece15SWilly Tu 33067ece15SWilly Tu } // namespace blobs 34