blob: aa07577289ba296f71a7fd649f4b7028ff0e727e [file] [log] [blame]
gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
gmock_dep = dependency('gmock', disabler: true, required: false)
if not gtest_dep.found() or not gmock_dep.found()
gtest_proj = import('cmake').subproject('googletest', required: false)
if gtest_proj.found()
gtest_dep = declare_dependency(
dependencies: [
dependency('threads'),
gtest_proj.dependency('gtest'),
gtest_proj.dependency('gtest_main'),
],
)
gmock_dep = gtest_proj.dependency('gmock')
else
assert(
not get_option('tests').enabled(),
'Googletest is required if tests are enabled',
)
endif
endif
tests = [
'async/context',
'async/task',
'async/timer',
'async/fdio',
'bus/exception',
'bus/list_names',
'bus/match',
'event/event',
'exception/sdbus_error',
'message/append',
'message/call',
'message/native_types',
'message/read',
'message/types',
'timer',
'unpack_properties',
'utility/tuple_to_array',
'utility/type_traits',
]
foreach t : tests
test(
'test_' + t.underscorify(),
executable(
'test-' + t.underscorify(),
t + '.cpp',
dependencies: [gtest_dep, gmock_dep, sdbusplus_dep],
),
)
endforeach
assert(
not get_option('tests').allowed() or boost_dep.found(),
'Boost is required when tests are enabled',
)
test(
'test-bus_aio',
executable(
'test-bus_aio',
'bus/aio.cpp',
dependencies: [boost_dep, gmock_dep, gtest_dep, sdbusplus_dep],
),
)
test(
'test-vtable',
executable(
'test-vtable',
'vtable/vtable.cpp',
'vtable/vtable_c.c',
dependencies: [gtest_dep, sdbusplus_dep],
),
)
yaml_selected_subdirs = ['server']
subdir('gen')
server_test_pre = declare_dependency(
include_directories: include_directories('gen'),
dependencies: sdbusplus_dep,
)
server_test_lib = static_library(
'server-test',
generated_sources,
implicit_include_directories: false,
dependencies: server_test_pre,
)
server_test_dep = declare_dependency(
sources: generated_headers,
link_with: server_test_lib,
dependencies: server_test_pre,
)
test(
'test-server',
executable(
'test-server',
'server/object.cpp',
dependencies: [gmock_dep, gtest_dep, server_test_dep],
),
)
test(
'test-server-message-variant',
executable(
'test-server-message-variant',
'server/message_variant.cpp',
dependencies: [gmock_dep, gtest_dep, server_test_dep],
),
)
uninit_tests = [
'test_server_no_uninitialized_value_constructor',
'test_aserver_no_uninitialized_value_constructor',
]
foreach t : uninit_tests
test(
t,
executable(
t,
f'gen/@t@.cpp',
generated_sources,
include_directories: [root_inc],
dependencies: [sdbusplus_dep, server_test_dep],
),
)
endforeach