xref: /openbmc/phosphor-led-manager/test/utest-led-yaml-empty-group.cpp (revision f2669fabb9a9e4803fdd1d2648b9897f9e7c4fb8)
1*f2669fabSJason M. Bills #include "config-validator.hpp"
2*f2669fabSJason M. Bills #include "group.hpp"
3*f2669fabSJason M. Bills #include "ledlayout.hpp"
4*f2669fabSJason M. Bills #include "test-empty-group.hpp"
5*f2669fabSJason M. Bills 
6*f2669fabSJason M. Bills #include <gtest/gtest.h>
7*f2669fabSJason M. Bills 
8*f2669fabSJason M. Bills using namespace phosphor::led;
9*f2669fabSJason M. Bills 
10*f2669fabSJason M. Bills // systemLedMap is generated code
11*f2669fabSJason M. Bills // static const GroupMap systemLedMap = {};
12*f2669fabSJason M. Bills 
13*f2669fabSJason M. Bills const std::string basePath = "/xyz/openbmc_project/led/groups/";
14*f2669fabSJason M. Bills 
TEST(YamlEmptyGroupTest,assertEmptyGroupExists)15*f2669fabSJason M. Bills TEST(YamlEmptyGroupTest, assertEmptyGroupExists)
16*f2669fabSJason M. Bills {
17*f2669fabSJason M. Bills     /* Empty led groups are supported since some boards may
18*f2669fabSJason M. Bills      * not have the required leds to fill the expected groups.
19*f2669fabSJason M. Bills      * Other software in openbmc (e.g bmcweb, led-manager itself)
20*f2669fabSJason M. Bills      * expects certain groups and unintended error messages can result
21*f2669fabSJason M. Bills      * if they are not present.
22*f2669fabSJason M. Bills      */
23*f2669fabSJason M. Bills 
24*f2669fabSJason M. Bills     const std::string emptyGroupPath = basePath + "emptygroup";
25*f2669fabSJason M. Bills     const std::string nonEmptyGroupPath = basePath + "nonemptygroup";
26*f2669fabSJason M. Bills 
27*f2669fabSJason M. Bills     EXPECT_EQ(systemLedMap.contains(emptyGroupPath), true);
28*f2669fabSJason M. Bills     EXPECT_EQ(systemLedMap.contains(nonEmptyGroupPath), true);
29*f2669fabSJason M. Bills 
30*f2669fabSJason M. Bills     const Layout::GroupLayout& emptyGroup = systemLedMap.at(emptyGroupPath);
31*f2669fabSJason M. Bills     const Layout::GroupLayout& nonEmptyGroup =
32*f2669fabSJason M. Bills         systemLedMap.at(nonEmptyGroupPath);
33*f2669fabSJason M. Bills 
34*f2669fabSJason M. Bills     EXPECT_EQ(emptyGroup.actionSet.size(), 0);
35*f2669fabSJason M. Bills     EXPECT_EQ(nonEmptyGroup.actionSet.size(), 1);
36*f2669fabSJason M. Bills 
37*f2669fabSJason M. Bills     // this should not throw
38*f2669fabSJason M. Bills     phosphor::led::validateConfigV1(systemLedMap);
39*f2669fabSJason M. Bills }
40