xref: /openbmc/phosphor-bmc-code-mgmt/test/common/software/software_config.cpp (revision e1d49f183fcddacee05f7fb4fe81fd4c85c60c6a)
1*e1d49f18SAlexander Hansen 
2*e1d49f18SAlexander Hansen #include "common/include/software_config.hpp"
3*e1d49f18SAlexander Hansen 
4*e1d49f18SAlexander Hansen #include <fcntl.h>
5*e1d49f18SAlexander Hansen #include <inttypes.h>
6*e1d49f18SAlexander Hansen #include <unistd.h>
7*e1d49f18SAlexander Hansen 
8*e1d49f18SAlexander Hansen #include <phosphor-logging/lg2.hpp>
9*e1d49f18SAlexander Hansen 
10*e1d49f18SAlexander Hansen #include <gtest/gtest.h>
11*e1d49f18SAlexander Hansen 
12*e1d49f18SAlexander Hansen using namespace phosphor::software;
13*e1d49f18SAlexander Hansen using namespace phosphor::software::config;
14*e1d49f18SAlexander Hansen 
15*e1d49f18SAlexander Hansen constexpr uint32_t vendorIANA = 0x0324;
16*e1d49f18SAlexander Hansen 
17*e1d49f18SAlexander Hansen constexpr const char* compatibleHardware =
18*e1d49f18SAlexander Hansen     "com.ExampleCorp.Hardware.ExamplePlatform.ExampleDevice";
19*e1d49f18SAlexander Hansen constexpr const char* exampleConfigName = "ExampleConfigName";
20*e1d49f18SAlexander Hansen constexpr const char* exampleConfigType = "ExampleConfigType";
21*e1d49f18SAlexander Hansen 
22*e1d49f18SAlexander Hansen const std::string objPath =
23*e1d49f18SAlexander Hansen     "/xyz/openbmc_project/inventory/system/board/ExampleBoard/ExampleDevice";
24*e1d49f18SAlexander Hansen 
TEST(SoftwareConfig,ConfigCreate)25*e1d49f18SAlexander Hansen TEST(SoftwareConfig, ConfigCreate)
26*e1d49f18SAlexander Hansen {
27*e1d49f18SAlexander Hansen     SoftwareConfig config(objPath, vendorIANA, compatibleHardware,
28*e1d49f18SAlexander Hansen                           exampleConfigType, exampleConfigName);
29*e1d49f18SAlexander Hansen 
30*e1d49f18SAlexander Hansen     ASSERT_EQ(config.configName, exampleConfigName);
31*e1d49f18SAlexander Hansen     ASSERT_EQ(config.configType, exampleConfigType);
32*e1d49f18SAlexander Hansen }
33*e1d49f18SAlexander Hansen 
TEST(SoftwareConfig,FailureCompatibleNoDot)34*e1d49f18SAlexander Hansen TEST(SoftwareConfig, FailureCompatibleNoDot)
35*e1d49f18SAlexander Hansen {
36*e1d49f18SAlexander Hansen     try
37*e1d49f18SAlexander Hansen     {
38*e1d49f18SAlexander Hansen         SoftwareConfig config(objPath, vendorIANA, "comexamplesamplecorp",
39*e1d49f18SAlexander Hansen                               exampleConfigType, exampleConfigName);
40*e1d49f18SAlexander Hansen         ASSERT_FALSE(true);
41*e1d49f18SAlexander Hansen     }
42*e1d49f18SAlexander Hansen     catch (std::exception& /*unused*/)
43*e1d49f18SAlexander Hansen     {}
44*e1d49f18SAlexander Hansen }
45*e1d49f18SAlexander Hansen 
TEST(SoftwareConfig,FailureCompatibleInvalidChar)46*e1d49f18SAlexander Hansen TEST(SoftwareConfig, FailureCompatibleInvalidChar)
47*e1d49f18SAlexander Hansen {
48*e1d49f18SAlexander Hansen     try
49*e1d49f18SAlexander Hansen     {
50*e1d49f18SAlexander Hansen         SoftwareConfig config(objPath, vendorIANA,
51*e1d49f18SAlexander Hansen                               std::string(compatibleHardware) + "#",
52*e1d49f18SAlexander Hansen                               exampleConfigType, exampleConfigName);
53*e1d49f18SAlexander Hansen         ASSERT_FALSE(true);
54*e1d49f18SAlexander Hansen     }
55*e1d49f18SAlexander Hansen     catch (std::exception& /*unused*/)
56*e1d49f18SAlexander Hansen     {}
57*e1d49f18SAlexander Hansen }
58