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 '../util.cpp'], 47 'pid_fancontroller_unittest': ['../pid/ec/pid.cpp', 48 '../pid/ec/logging.cpp', 49 '../pid/fancontroller.cpp', 50 '../pid/pidcontroller.cpp', 51 '../pid/tuning.cpp', 52 '../pid/util.cpp'], 53 'pid_stepwisecontroller_unittest': ['../pid/ec/stepwise.cpp', 54 '../pid/stepwisecontroller.cpp', 55 '../pid/tuning.cpp', 56 '../pid/util.cpp'], 57 'pid_thermalcontroller_unittest': ['../pid/ec/pid.cpp', 58 '../pid/ec/logging.cpp', 59 '../pid/pidcontroller.cpp', 60 '../pid/thermalcontroller.cpp', 61 '../pid/tuning.cpp', 62 '../pid/util.cpp'], 63 'pid_zone_unittest': ['../pid/ec/pid.cpp', 64 '../pid/ec/logging.cpp', 65 '../pid/pidcontroller.cpp', 66 '../pid/tuning.cpp', 67 '../pid/zone.cpp', 68 '../sensors/manager.cpp'], 69 'sensor_host_unittest': ['../sensors/host.cpp'], 70 'sensor_manager_unittest': ['../sensors/manager.cpp'], 71 'sensor_pluggable_unittest': ['../sensors/pluggable.cpp'], 72 'sensors_json_unittest': ['../sensors/buildjson.cpp'], 73 'util_unittest': ['../sensors/build_utils.cpp'] 74} 75 76foreach t : unit_tests 77 test(t, executable(t.underscorify(), t + '.cpp', 78 unittest_source.get(t), 79 include_directories: [ 80 swampd_sources, 81 ], 82 link_args: dynamic_linker, 83 build_rpath: get_option('oe-sdk').enabled() ? rpath : '', 84 dependencies: [ 85 gtest, 86 gmock, 87 deps, 88 ])) 89endforeach 90