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 22subdir('async') 23subdir('timer') 24 25tests = [ 26 'bus/exception', 27 'bus/list_names', 28 'bus/match', 29 'event/event', 30 'exception/sdbus_error', 31 'message/append', 32 'message/call', 33 'message/native_types', 34 'message/read', 35 'message/types', 36 'unpack_properties', 37 'utility/make_dbus_args_tuple', 38 'utility/tuple_to_array', 39 'utility/type_traits', 40] 41 42foreach t : tests 43 test( 44 'test_' + t.underscorify(), 45 executable( 46 'test-' + t.underscorify(), 47 t + '.cpp', 48 dependencies: [gtest_dep, gmock_dep, sdbusplus_dep], 49 ), 50 ) 51endforeach 52 53assert( 54 not get_option('tests').allowed() or boost_dep.found(), 55 'Boost is required when tests are enabled', 56) 57 58test( 59 'test-bus_aio', 60 executable( 61 'test-bus_aio', 62 'bus/aio.cpp', 63 dependencies: [boost_dep, gmock_dep, gtest_dep, sdbusplus_dep], 64 ), 65) 66 67test( 68 'test-vtable', 69 executable( 70 'test-vtable', 71 'vtable/vtable.cpp', 72 'vtable/vtable_c.c', 73 dependencies: [gtest_dep, sdbusplus_dep], 74 ), 75) 76 77yaml_selected_subdirs = ['server'] 78subdir('gen') 79 80server_test_pre = declare_dependency( 81 include_directories: include_directories('gen'), 82 dependencies: sdbusplus_dep, 83) 84 85server_test_lib = static_library( 86 'server-test', 87 generated_sources, 88 implicit_include_directories: false, 89 dependencies: server_test_pre, 90) 91 92server_test_dep = declare_dependency( 93 sources: generated_headers, 94 link_with: server_test_lib, 95 dependencies: server_test_pre, 96) 97 98test( 99 'test-server', 100 executable( 101 'test-server', 102 'server/object.cpp', 103 dependencies: [gmock_dep, gtest_dep, server_test_dep], 104 ), 105) 106 107test( 108 'test-server-message-variant', 109 executable( 110 'test-server-message-variant', 111 'server/message_variant.cpp', 112 dependencies: [gmock_dep, gtest_dep, server_test_dep], 113 ), 114) 115 116uninit_tests = [ 117 'test_server_no_uninitialized_value_constructor', 118 'test_aserver_no_uninitialized_value_constructor', 119 'test_aserver_emit_interfaces_added_signal', 120 'test_aserver_multiple_interfaces', 121 'test_property_names', 122 'test_method_names', 123 'test_signal_names', 124] 125 126foreach t : uninit_tests 127 test( 128 t, 129 executable( 130 t, 131 f'gen/@t@.cpp', 132 generated_sources, 133 include_directories: [root_inc], 134 dependencies: [sdbusplus_dep, server_test_dep, gtest_dep], 135 ), 136 ) 137endforeach 138