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/call', 28 'message/read', 29 'message/native_types', 30 'message/types', 31 'timer', 32 'unpack_properties', 33 'utility/tuple_to_array', 34 'utility/type_traits', 35] 36 37foreach t : tests 38 test( 39 'test_' + t.underscorify(), 40 executable( 41 'test-' + t.underscorify(), 42 t + '.cpp', 43 dependencies: [ 44 gtest_dep, 45 gmock_dep, 46 sdbusplus_dep, 47 ], 48 ) 49 ) 50endforeach 51 52assert( 53 not get_option('tests').enabled() or boost_dep.found(), 54 'Boost is required when tests are enabled' 55) 56 57test( 58 'test-bus_aio', 59 executable( 60 'test-bus_aio', 61 'bus/aio.cpp', 62 dependencies: [ 63 boost_dep, 64 gmock_dep, 65 gtest_dep, 66 sdbusplus_dep, 67 ], 68 ) 69) 70 71test( 72 'test-vtable', 73 executable( 74 'test-vtable', 75 'vtable/vtable.cpp', 76 'vtable/vtable_c.c', 77 dependencies: [ 78 gtest_dep, 79 sdbusplus_dep, 80 ], 81 ), 82) 83 84subdir('server/Test') 85server_test_lib = static_library( 86 'server-test', 87 server_test_sources, 88 dependencies: sdbusplus_dep, 89) 90server_test_hpp = [] 91foreach f : server_test_sources.to_list() 92 if f.full_path().endswith('.hpp') 93 server_test_hpp += f 94 endif 95endforeach 96server_test_dep = declare_dependency( 97 link_with: server_test_lib, 98 dependencies: sdbusplus_dep, 99 sources: server_test_hpp, 100) 101 102test( 103 'test-server', 104 executable( 105 'test-server', 106 'server/object.cpp', 107 dependencies: [ 108 gmock_dep, 109 gtest_dep, 110 server_test_dep, 111 ], 112 ), 113) 114 115test( 116 'test-server-message-variant', 117 executable( 118 'test-server-message-variant', 119 'server/message_variant.cpp', 120 dependencies: [ 121 gmock_dep, 122 gtest_dep, 123 server_test_dep, 124 ], 125 ), 126) 127