1*ded66d0fSJason Ling #include "firmware_handler.hpp" 2*ded66d0fSJason Ling #include "flags.hpp" 3*ded66d0fSJason Ling #include "image_mock.hpp" 4*ded66d0fSJason Ling #include "triggerable_mock.hpp" 5*ded66d0fSJason Ling #include "util.hpp" 6*ded66d0fSJason Ling 7*ded66d0fSJason Ling #include <memory> 8*ded66d0fSJason Ling #include <vector> 9*ded66d0fSJason Ling 10*ded66d0fSJason Ling #include <gtest/gtest.h> 11*ded66d0fSJason Ling 12*ded66d0fSJason Ling namespace ipmi_flash 13*ded66d0fSJason Ling { 14*ded66d0fSJason Ling namespace 15*ded66d0fSJason Ling { 16*ded66d0fSJason Ling 17*ded66d0fSJason Ling /* This test ensures the stat() method preserves compatibility with older host 18*ded66d0fSJason Ling * tools by reporting that all transports are supported. */ 19*ded66d0fSJason Ling TEST(FirmwareHandlerStatTest, StatOnInactiveBlobIDReturnsAllTransports) 20*ded66d0fSJason Ling { 21*ded66d0fSJason Ling /* Test that the metadata information returned matches expectations for this 22*ded66d0fSJason Ling * case. 23*ded66d0fSJason Ling * 24*ded66d0fSJason Ling * canHandle has already been called at this point, so we don't need to test 25*ded66d0fSJason Ling * the input for this function. 26*ded66d0fSJason Ling */ 27*ded66d0fSJason Ling 28*ded66d0fSJason Ling std::vector<HandlerPack> blobs; 29*ded66d0fSJason Ling blobs.emplace_back(hashBlobId, std::make_unique<ImageHandlerMock>()); 30*ded66d0fSJason Ling blobs.emplace_back("asdf", std::make_unique<ImageHandlerMock>()); 31*ded66d0fSJason Ling 32*ded66d0fSJason Ling std::vector<DataHandlerPack> data; 33*ded66d0fSJason Ling data.emplace_back(FirmwareFlags::UpdateFlags::ipmi, nullptr); 34*ded66d0fSJason Ling 35*ded66d0fSJason Ling auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler( 36*ded66d0fSJason Ling std::move(blobs), std::move(data), CreateActionMap("asdf")); 37*ded66d0fSJason Ling 38*ded66d0fSJason Ling blobs::BlobMeta meta; 39*ded66d0fSJason Ling EXPECT_TRUE(handler->stat("asdf", &meta)); 40*ded66d0fSJason Ling /* All transport flags are set */ 41*ded66d0fSJason Ling EXPECT_EQ(0xff00, meta.blobState); 42*ded66d0fSJason Ling } 43*ded66d0fSJason Ling 44*ded66d0fSJason Ling } // namespace 45*ded66d0fSJason Ling } // namespace ipmi_flash 46