1gtest_dep = dependency('gtest', main: true, disabler: true, required: false) 2gmock_dep = dependency('gmock', disabler: true, required: false) 3if not gtest_dep.found() or not gmock_dep.found() 4 gtest_proj = import('cmake').subproject('googletest', required: false) 5 if gtest_proj.found() 6 gtest_dep = declare_dependency( 7 dependencies: [ 8 dependency('threads'), 9 gtest_proj.dependency('gtest'), 10 gtest_proj.dependency('gtest_main'), 11 ] 12 ) 13 gmock_dep = gtest_proj.dependency('gmock') 14 else 15 assert( 16 not get_option('tests').enabled(), 17 'Googletest is required if tests are enabled' 18 ) 19 endif 20endif 21 22tests = [ 23 'bus/list_names', 24 'bus/match', 25 'exception/sdbus_error', 26 'message/append', 27 'message/read', 28 'message/native_types', 29 'message/types', 30 'timer', 31 'unpack_properties', 32 'utility/tuple_to_array', 33 'utility/type_traits', 34] 35 36foreach t : tests 37 test( 38 'test_' + t.underscorify(), 39 executable( 40 'test-' + t.underscorify(), 41 t + '.cpp', 42 dependencies: [ 43 gtest_dep, 44 gmock_dep, 45 sdbusplus_dep, 46 ], 47 ) 48 ) 49endforeach 50 51assert( 52 not get_option('tests').enabled() or boost_dep.found(), 53 'Boost is required when tests are enabled' 54) 55 56test( 57 'test-bus_aio', 58 executable( 59 'test-bus_aio', 60 'bus/aio.cpp', 61 dependencies: [ 62 boost_dep, 63 gmock_dep, 64 gtest_dep, 65 sdbusplus_dep, 66 ], 67 ) 68) 69 70test( 71 'test-vtable', 72 executable( 73 'test-vtable', 74 'vtable/vtable.cpp', 75 'vtable/vtable_c.c', 76 dependencies: [ 77 gtest_dep, 78 sdbusplus_dep, 79 ], 80 ), 81) 82 83server_buildroot = meson.current_build_dir() 84server_files = files( 85 run_command( 86 sdbusgen_prog, 87 '--tool', sdbusplusplus_prog, 88 '--output', server_buildroot, 89 'server', 90 check: true 91 ).stdout().strip().split('\n') 92) 93 94test( 95 'test-server', 96 executable( 97 'test-server', 98 'server/object.cpp', 99 server_files, 100 include_directories: include_directories('server'), 101 dependencies: [ 102 gmock_dep, 103 gtest_dep, 104 sdbusplus_dep, 105 ], 106 ), 107) 108