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