blob: b1c93e918b3ba64bc67a06d9f304a189ca7cf634 [file] [log] [blame]
Harvey.Wub1225b22022-10-28 17:42:07 +08001gtest = 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(
Patrick Williams6813d892025-02-01 08:37:30 -05008 dependencies: [
9 dependency('threads'),
10 gtest_proj.dependency('gtest'),
11 gtest_proj.dependency('gtest_main'),
12 ],
13 )
Harvey.Wub1225b22022-10-28 17:42:07 +080014 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 = [
Harvey.Wub1225b22022-10-28 17:42:07 +080023 '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 = {
Patrick Williams6813d892025-02-01 08:37:30 -050039 'dbus_passive_unittest': [
40 '../dbus/dbuspassive.cpp',
41 '../dbus/dbuspassiveredundancy.cpp',
42 '../dbus/dbusutil.cpp',
43 '../failsafeloggers/failsafe_logger_utility.cpp',
44 ],
Harvey.Wub1225b22022-10-28 17:42:07 +080045 'dbus_util_unittest': ['../dbus/dbusutil.cpp'],
46 'json_parse_unittest': ['../buildjson/buildjson.cpp'],
Patrick Williams6813d892025-02-01 08:37:30 -050047 '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 ],
Harvey.Wub1225b22022-10-28 17:42:07 +080086 'sensor_manager_unittest': ['../sensors/manager.cpp'],
87 'sensor_pluggable_unittest': ['../sensors/pluggable.cpp'],
88 'sensors_json_unittest': ['../sensors/buildjson.cpp'],
Patrick Williams6813d892025-02-01 08:37:30 -050089 'util_unittest': ['../sensors/build_utils.cpp'],
Harvey.Wub1225b22022-10-28 17:42:07 +080090}
91
92foreach t : unit_tests
Patrick Williams6813d892025-02-01 08:37:30 -050093 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 )
Harvey.Wub1225b22022-10-28 17:42:07 +0800105endforeach