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