xref: /openbmc/phosphor-pid-control/test/meson.build (revision 215ffb5f3ad530a8a51e3cd9d56c445d9123570d)
1gtest = dependency('gtest', main: true, disabler: true, required: false)
2gmock = dependency('gmock', disabler: true, required: false)
3
4if not gtest.found() or not gmock.found()
5    gtest_proj = import('cmake').subproject('googletest', required: false)
6    if gtest_proj.found()
7        gtest = declare_dependency(
8            dependencies: [
9                dependency('threads'),
10                gtest_proj.dependency('gtest'),
11                gtest_proj.dependency('gtest_main'),
12            ],
13        )
14        gmock = gtest_proj.dependency('gmock')
15    else
16        assert(not get_option('tests').enabled(), 'Googletest is required')
17    endif
18endif
19
20swampd_sources = include_directories('../')
21
22unit_tests = [
23    'dbus_passive_unittest',
24    'dbus_util_unittest',
25    'json_parse_unittest',
26    'pid_json_unittest',
27    'pid_fancontroller_unittest',
28    'pid_stepwisecontroller_unittest',
29    'pid_thermalcontroller_unittest',
30    'pid_zone_unittest',
31    'sensor_host_unittest',
32    'sensor_manager_unittest',
33    'sensor_pluggable_unittest',
34    'sensors_json_unittest',
35    'util_unittest',
36]
37
38unittest_source = {
39    'dbus_passive_unittest': [
40        '../dbus/dbuspassive.cpp',
41        '../dbus/dbuspassiveredundancy.cpp',
42        '../dbus/dbusutil.cpp',
43        '../failsafeloggers/failsafe_logger_utility.cpp',
44    ],
45    'dbus_util_unittest': ['../dbus/dbusutil.cpp'],
46    'json_parse_unittest': ['../buildjson/buildjson.cpp'],
47    'pid_json_unittest': ['../pid/buildjson.cpp', '../util.cpp'],
48    'pid_fancontroller_unittest': [
49        '../pid/ec/pid.cpp',
50        '../pid/ec/logging.cpp',
51        '../pid/fancontroller.cpp',
52        '../pid/pidcontroller.cpp',
53        '../pid/tuning.cpp',
54        '../pid/util.cpp',
55    ],
56    'pid_stepwisecontroller_unittest': [
57        '../pid/ec/stepwise.cpp',
58        '../pid/stepwisecontroller.cpp',
59        '../pid/tuning.cpp',
60        '../pid/util.cpp',
61    ],
62    'pid_thermalcontroller_unittest': [
63        '../pid/ec/pid.cpp',
64        '../pid/ec/logging.cpp',
65        '../pid/pidcontroller.cpp',
66        '../pid/thermalcontroller.cpp',
67        '../pid/tuning.cpp',
68        '../pid/util.cpp',
69    ],
70    'pid_zone_unittest': [
71        '../failsafeloggers/builder.cpp',
72        '../failsafeloggers/failsafe_logger.cpp',
73        '../failsafeloggers/failsafe_logger_utility.cpp',
74        '../pid/ec/pid.cpp',
75        '../pid/ec/logging.cpp',
76        '../pid/pidcontroller.cpp',
77        '../pid/tuning.cpp',
78        '../pid/zone.cpp',
79        '../sensors/manager.cpp',
80    ],
81    'sensor_host_unittest': [
82        '../failsafeloggers/failsafe_logger.cpp',
83        '../failsafeloggers/failsafe_logger_utility.cpp',
84        '../sensors/host.cpp',
85    ],
86    'sensor_manager_unittest': ['../sensors/manager.cpp'],
87    'sensor_pluggable_unittest': ['../sensors/pluggable.cpp'],
88    'sensors_json_unittest': ['../sensors/buildjson.cpp'],
89    'util_unittest': ['../sensors/build_utils.cpp'],
90}
91
92foreach t : unit_tests
93    test(
94        t,
95        executable(
96            t.underscorify(),
97            t + '.cpp',
98            unittest_source.get(t),
99            include_directories: [swampd_sources],
100            link_args: dynamic_linker,
101            build_rpath: get_option('oe-sdk').allowed() ? rpath : '',
102            dependencies: [gtest, gmock, deps],
103        ),
104    )
105endforeach
106