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 gmock = gtest_proj.dependency('gmock') 14 else 15 assert(not get_option('tests').enabled(), 'Googletest is required') 16 endif 17endif 18 19swampd_sources = include_directories('../') 20 21unit_tests = [ 22 'dbus_active_unittest', 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_active_unittest': ['../dbus/dbusactiveread.cpp'], 40 'dbus_passive_unittest': ['../dbus/dbuspassive.cpp', 41 '../dbus/dbuspassiveredundancy.cpp', 42 '../dbus/dbusutil.cpp'], 43 'dbus_util_unittest': ['../dbus/dbusutil.cpp'], 44 'json_parse_unittest': ['../buildjson/buildjson.cpp'], 45 'pid_json_unittest': ['../pid/buildjson.cpp'], 46 'pid_fancontroller_unittest': ['../pid/ec/pid.cpp', 47 '../pid/ec/logging.cpp', 48 '../pid/fancontroller.cpp', 49 '../pid/pidcontroller.cpp', 50 '../pid/tuning.cpp', 51 '../pid/util.cpp'], 52 'pid_stepwisecontroller_unittest': ['../pid/ec/stepwise.cpp', 53 '../pid/stepwisecontroller.cpp', 54 '../pid/tuning.cpp', 55 '../pid/util.cpp'], 56 'pid_thermalcontroller_unittest': ['../pid/ec/pid.cpp', 57 '../pid/ec/logging.cpp', 58 '../pid/pidcontroller.cpp', 59 '../pid/thermalcontroller.cpp', 60 '../pid/tuning.cpp', 61 '../pid/util.cpp'], 62 'pid_zone_unittest': ['../pid/ec/pid.cpp', 63 '../pid/ec/logging.cpp', 64 '../pid/pidcontroller.cpp', 65 '../pid/tuning.cpp', 66 '../pid/zone.cpp', 67 '../sensors/manager.cpp'], 68 'sensor_host_unittest': ['../sensors/host.cpp'], 69 'sensor_manager_unittest': ['../sensors/manager.cpp'], 70 'sensor_pluggable_unittest': ['../sensors/pluggable.cpp'], 71 'sensors_json_unittest': ['../sensors/buildjson.cpp'], 72 'util_unittest': ['../sensors/build_utils.cpp'] 73} 74 75foreach t : unit_tests 76 test(t, executable(t.underscorify(), t + '.cpp', 77 unittest_source.get(t), 78 include_directories: [ 79 swampd_sources, 80 ], 81 link_args: dynamic_linker, 82 build_rpath: get_option('oe-sdk').enabled() ? rpath : '', 83 dependencies: [ 84 gtest, 85 gmock, 86 deps, 87 ])) 88endforeach 89