1 #include <gtest/gtest.h> 2 #include <sdbusplus/bus.hpp> 3 #include <sdeventplus/event.hpp> 4 #include <systemd_target_signal.hpp> 5 6 #include <iostream> 7 8 // Enable debug by default for debug when needed 9 bool gVerbose = true; 10 11 TEST(TargetSignalData, BasicPaths) 12 { 13 14 // Create default data structure for testing 15 TargetErrorData targetData = { 16 {"multi-user.target", 17 {"xyz.openbmc_project.State.BMC.Error.MultiUserTargetFailure", 18 {"default"}}}, 19 {"obmc-chassis-poweron@0.target", 20 {"xyz.openbmc_project.State.Chassis.Error.PowerOnTargetFailure", 21 {"timeout", "failed"}}}}; 22 23 auto bus = sdbusplus::bus::new_default(); 24 auto event = sdeventplus::Event::get_default(); 25 bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL); 26 27 phosphor::state::manager::SystemdTargetLogging targetMon(targetData, bus); 28 29 std::string invalidUnit = "invalid_unit"; 30 std::string validError = "timeout"; 31 const std::string* errorToLog = 32 targetMon.processError(invalidUnit, validError); 33 EXPECT_EQ(errorToLog, nullptr); 34 35 std::string validUnit = "obmc-chassis-poweron@0.target"; 36 std::string invalidError = "invalid_error"; 37 errorToLog = targetMon.processError(validUnit, invalidError); 38 EXPECT_EQ(errorToLog, nullptr); 39 40 errorToLog = targetMon.processError(validUnit, validError); 41 EXPECT_NE(errorToLog, nullptr); 42 EXPECT_EQ(*errorToLog, 43 "xyz.openbmc_project.State.Chassis.Error.PowerOnTargetFailure"); 44 } 45