#include "group.hpp" #include "ledlayout.hpp" #include "manager.hpp" #include "test-group-priority.hpp" #include #include #include #include using namespace phosphor::led; using Action = phosphor::led::Layout::Action; // systemLedMap is generated code // static const phosphor::led::GroupMap systemLedMap = {}; const std::string basePath = "/xyz/openbmc_project/led/groups/"; TEST(YamlGroupPriorityTest, assertYAMLLedOn) { const std::string groupPath = basePath + "group1"; EXPECT_EQ(systemLedMap.contains(groupPath), true); phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); EXPECT_EQ(group.priority, 1); EXPECT_EQ(group.actionSet.size(), 1); for (auto& led : group.actionSet) { EXPECT_EQ(led.name, "led1"); EXPECT_EQ(led.action, Action::On); EXPECT_EQ(led.priority, std::nullopt); } } TEST(YamlGroupPriorityTest, assertYAMLLedOff) { const std::string groupPath = basePath + "group2"; EXPECT_EQ(systemLedMap.contains(groupPath), true); phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); EXPECT_EQ(group.priority, 2); EXPECT_EQ(group.actionSet.size(), 1); for (auto& led : group.actionSet) { EXPECT_EQ(led.name, "led1"); EXPECT_EQ(led.action, Action::Off); EXPECT_EQ(led.priority, std::nullopt); } } TEST(YamlGroupPriorityTest, assertYAMLLedBlink) { const std::string groupPath = basePath + "group3"; EXPECT_EQ(systemLedMap.contains(groupPath), true); phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); EXPECT_EQ(group.priority, 3); EXPECT_EQ(group.actionSet.size(), 1); for (auto& led : group.actionSet) { EXPECT_EQ(led.name, "led1"); EXPECT_EQ(led.action, Action::Blink); EXPECT_EQ(led.dutyOn, 50); EXPECT_EQ(led.period, 1000); EXPECT_EQ(led.priority, std::nullopt); } } TEST(YamlGroupPriorityTest, assertYAMLGroupPriority) { const std::string groupPath = basePath + "group4"; EXPECT_EQ(systemLedMap.contains(groupPath), true); phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); EXPECT_EQ(group.priority, 2); EXPECT_EQ(group.actionSet.size(), 2); int found = 0; for (auto& led : group.actionSet) { if (led.name == "led1") { EXPECT_EQ(led.action, Action::On); EXPECT_EQ(led.priority, std::nullopt); found++; } if (led.name == "led2") { EXPECT_EQ(led.action, Action::Off); EXPECT_EQ(led.priority, std::nullopt); found++; } } EXPECT_EQ(found, group.actionSet.size()); }