blob: 2e9a21deb91027779ecab3bde14177567df30960 [file] [log] [blame]
William A. Kennington IIIadf03542020-06-04 03:01:11 -07001gtest_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'),
Patrick Williamsdd6efd12025-02-01 08:36:20 -050011 ],
William A. Kennington IIIadf03542020-06-04 03:01:11 -070012 )
13 gmock_dep = gtest_proj.dependency('gmock')
Patrick Williams8a037732021-04-19 11:42:31 -050014 else
William A. Kennington IIIadf03542020-06-04 03:01:11 -070015 assert(
Patrick Williamsfcd80ef2023-11-29 21:20:05 -060016 not get_option('tests').enabled(),
Patrick Williamsdd6efd12025-02-01 08:36:20 -050017 'Googletest is required if tests are enabled',
William A. Kennington IIIadf03542020-06-04 03:01:11 -070018 )
Patrick Williams8a037732021-04-19 11:42:31 -050019 endif
William A. Kennington IIIadf03542020-06-04 03:01:11 -070020endif
Patrick Williamsad145e02020-05-19 16:45:15 -050021
Alexander Hansen2cd25e62025-10-23 12:35:39 +020022subdir('async')
23subdir('timer')
24
Patrick Williamsad145e02020-05-19 16:45:15 -050025tests = [
Hannu Lounento90f8d9b2023-03-13 11:05:08 +020026 'bus/exception',
Patrick Williamsad145e02020-05-19 16:45:15 -050027 'bus/list_names',
28 'bus/match',
Patrick Williamsd2b00442022-09-16 08:28:07 -050029 'event/event',
Patrick Williamsad145e02020-05-19 16:45:15 -050030 'exception/sdbus_error',
31 'message/append',
William A. Kennington III472b7022021-04-15 13:13:14 -070032 'message/call',
Patrick Williamsad145e02020-05-19 16:45:15 -050033 'message/native_types',
Patrick Williams2f58b792022-08-26 14:07:04 -050034 'message/read',
Patrick Williamsad145e02020-05-19 16:45:15 -050035 'message/types',
Krzysztof Grobelny09b88f22020-09-02 14:49:01 +020036 'unpack_properties',
Ed Tanouse8f2b0d2025-09-12 15:11:13 -070037 'utility/make_dbus_args_tuple',
Patrick Williamsad145e02020-05-19 16:45:15 -050038 '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',
Patrick Williamsdd6efd12025-02-01 08:36:20 -050048 dependencies: [gtest_dep, gmock_dep, sdbusplus_dep],
49 ),
Patrick Williamsad145e02020-05-19 16:45:15 -050050 )
51endforeach
52
William A. Kennington III5e893b92020-06-04 02:47:29 -070053assert(
Konstantin Aladysheva4df19a2024-03-28 15:57:16 +030054 not get_option('tests').allowed() or boost_dep.found(),
Patrick Williamsdd6efd12025-02-01 08:36:20 -050055 'Boost is required when tests are enabled',
William A. Kennington III5e893b92020-06-04 02:47:29 -070056)
57
Patrick Williamsad145e02020-05-19 16:45:15 -050058test(
Patrick Williams3a6d5842020-06-09 14:59:58 -050059 'test-bus_aio',
60 executable(
61 'test-bus_aio',
62 'bus/aio.cpp',
Patrick Williamsdd6efd12025-02-01 08:36:20 -050063 dependencies: [boost_dep, gmock_dep, gtest_dep, sdbusplus_dep],
64 ),
Patrick Williams3a6d5842020-06-09 14:59:58 -050065)
66
67test(
Patrick Williamsad145e02020-05-19 16:45:15 -050068 'test-vtable',
69 executable(
70 'test-vtable',
71 'vtable/vtable.cpp',
72 'vtable/vtable_c.c',
Patrick Williamsdd6efd12025-02-01 08:36:20 -050073 dependencies: [gtest_dep, sdbusplus_dep],
Patrick Williamsad145e02020-05-19 16:45:15 -050074 ),
75)
76
Patrick Williams74eea512025-01-03 10:03:49 -050077yaml_selected_subdirs = ['server']
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -070078subdir('gen')
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -070079
80server_test_pre = declare_dependency(
81 include_directories: include_directories('gen'),
Patrick Williamsdd6efd12025-02-01 08:36:20 -050082 dependencies: sdbusplus_dep,
83)
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -070084
William A. Kennington III293c8a22022-09-02 14:35:54 -070085server_test_lib = static_library(
86 'server-test',
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -070087 generated_sources,
88 implicit_include_directories: false,
Patrick Williamsdd6efd12025-02-01 08:36:20 -050089 dependencies: server_test_pre,
90)
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -070091
William A. Kennington III293c8a22022-09-02 14:35:54 -070092server_test_dep = declare_dependency(
Patrick Williamsdd6efd12025-02-01 08:36:20 -050093 sources: generated_headers,
94 link_with: server_test_lib,
95 dependencies: server_test_pre,
96)
Patrick Williamsad145e02020-05-19 16:45:15 -050097
98test(
99 'test-server',
100 executable(
101 'test-server',
102 'server/object.cpp',
Patrick Williamsdd6efd12025-02-01 08:36:20 -0500103 dependencies: [gmock_dep, gtest_dep, server_test_dep],
Patrick Williamsad145e02020-05-19 16:45:15 -0500104 ),
105)
Patrick Williamsea56ec32021-07-14 07:41:47 -0500106
107test(
108 'test-server-message-variant',
109 executable(
110 'test-server-message-variant',
111 'server/message_variant.cpp',
Patrick Williamsdd6efd12025-02-01 08:36:20 -0500112 dependencies: [gmock_dep, gtest_dep, server_test_dep],
Patrick Williamsea56ec32021-07-14 07:41:47 -0500113 ),
114)
Alexander Hansen0cfa35a2025-01-23 16:49:39 +0100115
116uninit_tests = [
117 'test_server_no_uninitialized_value_constructor',
118 'test_aserver_no_uninitialized_value_constructor',
Alexander Hansena0fe02c2025-03-10 18:26:56 +0100119 'test_aserver_emit_interfaces_added_signal',
120 'test_aserver_multiple_interfaces',
Alexander Hansend2571922025-10-02 20:18:17 +0200121 'test_property_names',
Alexander Hansen4aa58f52025-10-16 15:41:29 +0200122 'test_method_names',
Alexander Hansenc6fee5a2025-10-20 14:43:12 +0200123 'test_signal_names',
Alexander Hansen0cfa35a2025-01-23 16:49:39 +0100124]
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],
Alexander Hansend2571922025-10-02 20:18:17 +0200134 dependencies: [sdbusplus_dep, server_test_dep, gtest_dep],
Alexander Hansen0cfa35a2025-01-23 16:49:39 +0100135 ),
136 )
137endforeach