1*eb1f46a8SAlexander Hansen #include "group.hpp" 2*eb1f46a8SAlexander Hansen #include "ledlayout.hpp" 3*eb1f46a8SAlexander Hansen #include "manager.hpp" 4*eb1f46a8SAlexander Hansen #include "test-group-priority.hpp" 5*eb1f46a8SAlexander Hansen 6*eb1f46a8SAlexander Hansen #include <sdbusplus/bus.hpp> 7*eb1f46a8SAlexander Hansen 8*eb1f46a8SAlexander Hansen #include <algorithm> 9*eb1f46a8SAlexander Hansen #include <set> 10*eb1f46a8SAlexander Hansen 11*eb1f46a8SAlexander Hansen #include <gtest/gtest.h> 12*eb1f46a8SAlexander Hansen 13*eb1f46a8SAlexander Hansen using namespace phosphor::led; 14*eb1f46a8SAlexander Hansen 15*eb1f46a8SAlexander Hansen using Action = phosphor::led::Layout::Action; 16*eb1f46a8SAlexander Hansen 17*eb1f46a8SAlexander Hansen // systemLedMap is generated code 18*eb1f46a8SAlexander Hansen // static const phosphor::led::GroupMap systemLedMap = {}; 19*eb1f46a8SAlexander Hansen 20*eb1f46a8SAlexander Hansen const std::string basePath = "/xyz/openbmc_project/led/groups/"; 21*eb1f46a8SAlexander Hansen 22*eb1f46a8SAlexander Hansen TEST(YamlGroupPriorityTest, assertYAMLLedOn) 23*eb1f46a8SAlexander Hansen { 24*eb1f46a8SAlexander Hansen const std::string groupPath = basePath + "group1"; 25*eb1f46a8SAlexander Hansen EXPECT_EQ(systemLedMap.contains(groupPath), true); 26*eb1f46a8SAlexander Hansen 27*eb1f46a8SAlexander Hansen phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); 28*eb1f46a8SAlexander Hansen 29*eb1f46a8SAlexander Hansen EXPECT_EQ(group.priority, 0); 30*eb1f46a8SAlexander Hansen EXPECT_EQ(group.actionSet.size(), 1); 31*eb1f46a8SAlexander Hansen 32*eb1f46a8SAlexander Hansen for (auto& led : group.actionSet) 33*eb1f46a8SAlexander Hansen { 34*eb1f46a8SAlexander Hansen EXPECT_EQ(led.name, "led1"); 35*eb1f46a8SAlexander Hansen EXPECT_EQ(led.action, Action::On); 36*eb1f46a8SAlexander Hansen } 37*eb1f46a8SAlexander Hansen } 38*eb1f46a8SAlexander Hansen 39*eb1f46a8SAlexander Hansen TEST(YamlGroupPriorityTest, assertYAMLLedOff) 40*eb1f46a8SAlexander Hansen { 41*eb1f46a8SAlexander Hansen const std::string groupPath = basePath + "group2"; 42*eb1f46a8SAlexander Hansen EXPECT_EQ(systemLedMap.contains(groupPath), true); 43*eb1f46a8SAlexander Hansen 44*eb1f46a8SAlexander Hansen phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); 45*eb1f46a8SAlexander Hansen 46*eb1f46a8SAlexander Hansen EXPECT_EQ(group.priority, 0); 47*eb1f46a8SAlexander Hansen EXPECT_EQ(group.actionSet.size(), 1); 48*eb1f46a8SAlexander Hansen 49*eb1f46a8SAlexander Hansen for (auto& led : group.actionSet) 50*eb1f46a8SAlexander Hansen { 51*eb1f46a8SAlexander Hansen EXPECT_EQ(led.name, "led1"); 52*eb1f46a8SAlexander Hansen EXPECT_EQ(led.action, Action::Off); 53*eb1f46a8SAlexander Hansen } 54*eb1f46a8SAlexander Hansen } 55*eb1f46a8SAlexander Hansen 56*eb1f46a8SAlexander Hansen TEST(YamlGroupPriorityTest, assertYAMLLedBlink) 57*eb1f46a8SAlexander Hansen { 58*eb1f46a8SAlexander Hansen const std::string groupPath = basePath + "group3"; 59*eb1f46a8SAlexander Hansen EXPECT_EQ(systemLedMap.contains(groupPath), true); 60*eb1f46a8SAlexander Hansen 61*eb1f46a8SAlexander Hansen phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); 62*eb1f46a8SAlexander Hansen 63*eb1f46a8SAlexander Hansen EXPECT_EQ(group.priority, 0); 64*eb1f46a8SAlexander Hansen EXPECT_EQ(group.actionSet.size(), 1); 65*eb1f46a8SAlexander Hansen 66*eb1f46a8SAlexander Hansen for (auto& led : group.actionSet) 67*eb1f46a8SAlexander Hansen { 68*eb1f46a8SAlexander Hansen EXPECT_EQ(led.name, "led1"); 69*eb1f46a8SAlexander Hansen EXPECT_EQ(led.action, Action::Blink); 70*eb1f46a8SAlexander Hansen EXPECT_EQ(led.dutyOn, 50); 71*eb1f46a8SAlexander Hansen EXPECT_EQ(led.period, 1000); 72*eb1f46a8SAlexander Hansen } 73*eb1f46a8SAlexander Hansen } 74*eb1f46a8SAlexander Hansen 75*eb1f46a8SAlexander Hansen TEST(YamlGroupPriorityTest, assertYAMLGroupPriority) 76*eb1f46a8SAlexander Hansen { 77*eb1f46a8SAlexander Hansen const std::string groupPath = basePath + "group4"; 78*eb1f46a8SAlexander Hansen EXPECT_EQ(systemLedMap.contains(groupPath), true); 79*eb1f46a8SAlexander Hansen 80*eb1f46a8SAlexander Hansen phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath); 81*eb1f46a8SAlexander Hansen 82*eb1f46a8SAlexander Hansen EXPECT_EQ(group.priority, 2); 83*eb1f46a8SAlexander Hansen EXPECT_EQ(group.actionSet.size(), 2); 84*eb1f46a8SAlexander Hansen 85*eb1f46a8SAlexander Hansen int found = 0; 86*eb1f46a8SAlexander Hansen for (auto& led : group.actionSet) 87*eb1f46a8SAlexander Hansen { 88*eb1f46a8SAlexander Hansen if (led.name == "led1") 89*eb1f46a8SAlexander Hansen { 90*eb1f46a8SAlexander Hansen EXPECT_EQ(led.action, Action::On); 91*eb1f46a8SAlexander Hansen found++; 92*eb1f46a8SAlexander Hansen } 93*eb1f46a8SAlexander Hansen if (led.name == "led2") 94*eb1f46a8SAlexander Hansen { 95*eb1f46a8SAlexander Hansen EXPECT_EQ(led.action, Action::Off); 96*eb1f46a8SAlexander Hansen found++; 97*eb1f46a8SAlexander Hansen } 98*eb1f46a8SAlexander Hansen } 99*eb1f46a8SAlexander Hansen 100*eb1f46a8SAlexander Hansen EXPECT_EQ(found, group.actionSet.size()); 101*eb1f46a8SAlexander Hansen } 102