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