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