1 #include "sensors/build_utils.hpp"
2 
3 #include <string>
4 
5 #include <gmock/gmock.h>
6 #include <gtest/gtest.h>
7 
8 namespace pid_control
9 {
10 namespace
11 {
12 
13 TEST(UtilTest, WriteTypeEmptyString_ReturnsNONE)
14 {
15     // Verify it responds to an empty string.
16 
17     EXPECT_EQ(IOInterfaceType::NONE, getWriteInterfaceType(""));
18 }
19 
20 TEST(UtilTest, WriteTypeNonePath_ReturnsNONE)
21 {
22     // Verify it responds to a path of "None"
23 
24     EXPECT_EQ(IOInterfaceType::NONE, getWriteInterfaceType("None"));
25 }
26 
27 TEST(UtilTest, WriteTypeSysfs_ReturnsSYSFS)
28 {
29     // Verify the sysfs type is determined with an expected path
30 
31     std::string path = "/sys/devices/asfdadsf";
32     EXPECT_EQ(IOInterfaceType::SYSFS, getWriteInterfaceType(path));
33 }
34 
35 TEST(UtilTest, WriteTypeUnknown_ReturnsUNKNOWN)
36 {
37     // Verify it reports unknown by default.
38 
39     std::string path = "/xyz/openbmc_project";
40     EXPECT_EQ(IOInterfaceType::UNKNOWN, getWriteInterfaceType(path));
41 }
42 
43 TEST(UtilTest, ReadTypeEmptyString_ReturnsNONE)
44 {
45     // Verify it responds to an empty string.
46 
47     EXPECT_EQ(IOInterfaceType::NONE, getReadInterfaceType(""));
48 }
49 
50 TEST(UtilTest, ReadTypeNonePath_ReturnsNONE)
51 {
52     // Verify it responds to a path of "None"
53 
54     EXPECT_EQ(IOInterfaceType::NONE, getReadInterfaceType("None"));
55 }
56 
57 TEST(UtilTest, ReadTypeExternalSensors_ReturnsEXTERNAL)
58 {
59     // Verify it responds to a path that represents a host sensor.
60 
61     std::string path = "/xyz/openbmc_project/extsensors/temperature/fleeting0";
62     EXPECT_EQ(IOInterfaceType::EXTERNAL, getReadInterfaceType(path));
63 }
64 
65 TEST(UtilTest, ReadTypeOpenBMCSensor_ReturnsDBUSPASSIVE)
66 {
67     // Verify it responds to a path that represents a dbus sensor.
68 
69     std::string path = "/xyz/openbmc_project/sensors/fan_tach/fan1";
70     EXPECT_EQ(IOInterfaceType::DBUSPASSIVE, getReadInterfaceType(path));
71 }
72 
73 TEST(UtilTest, ReadTypeSysfsPath_ReturnsSYSFS)
74 {
75     // Verify the sysfs type is determined with an expected path
76 
77     std::string path = "/sys/devices/asdf/asdf0";
78     EXPECT_EQ(IOInterfaceType::SYSFS, getReadInterfaceType(path));
79 }
80 
81 TEST(UtilTest, ReadTypeUnknownDefault_ReturnsUNKNOWN)
82 {
83     // Verify it reports unknown by default.
84 
85     std::string path = "asdf09as0df9a0fd";
86     EXPECT_EQ(IOInterfaceType::UNKNOWN, getReadInterfaceType(path));
87 }
88 
89 } // namespace
90 } // namespace pid_control
91