blob: c0b7a0af136adb927a0d772880d186c3aebd2d9b [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'),
11 ]
12 )
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(),
William A. Kennington IIIadf03542020-06-04 03:01:11 -070017 'Googletest is required if tests are enabled'
18 )
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
22tests = [
Patrick Williams73e278b2022-09-16 08:31:36 -050023 'async/context',
Patrick Williams2f58b792022-08-26 14:07:04 -050024 'async/task',
Patrick Williams435eb1b2022-09-16 16:22:07 -050025 'async/timer',
Jagpal Singh Gill2a12ae12024-10-23 11:20:25 -070026 'async/fdio',
Hannu Lounento90f8d9b2023-03-13 11:05:08 +020027 'bus/exception',
Patrick Williamsad145e02020-05-19 16:45:15 -050028 'bus/list_names',
29 'bus/match',
Patrick Williamsd2b00442022-09-16 08:28:07 -050030 'event/event',
Patrick Williamsad145e02020-05-19 16:45:15 -050031 'exception/sdbus_error',
32 'message/append',
William A. Kennington III472b7022021-04-15 13:13:14 -070033 'message/call',
Patrick Williamsad145e02020-05-19 16:45:15 -050034 'message/native_types',
Patrick Williams2f58b792022-08-26 14:07:04 -050035 'message/read',
Patrick Williamsad145e02020-05-19 16:45:15 -050036 'message/types',
37 'timer',
Krzysztof Grobelny09b88f22020-09-02 14:49:01 +020038 'unpack_properties',
Patrick Williamsad145e02020-05-19 16:45:15 -050039 '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',
Patrick Williamsad145e02020-05-19 16:45:15 -050049 dependencies: [
50 gtest_dep,
51 gmock_dep,
Patrick Williamsd0285b92020-06-01 09:43:47 -050052 sdbusplus_dep,
Patrick Williamsad145e02020-05-19 16:45:15 -050053 ],
54 )
55 )
56endforeach
57
William A. Kennington III5e893b92020-06-04 02:47:29 -070058assert(
Konstantin Aladysheva4df19a2024-03-28 15:57:16 +030059 not get_option('tests').allowed() or boost_dep.found(),
William A. Kennington III5e893b92020-06-04 02:47:29 -070060 'Boost is required when tests are enabled'
61)
62
Patrick Williamsad145e02020-05-19 16:45:15 -050063test(
Patrick Williams3a6d5842020-06-09 14:59:58 -050064 'test-bus_aio',
65 executable(
66 'test-bus_aio',
67 'bus/aio.cpp',
68 dependencies: [
69 boost_dep,
70 gmock_dep,
Patrick Williams3a6d5842020-06-09 14:59:58 -050071 gtest_dep,
72 sdbusplus_dep,
73 ],
74 )
75)
76
77test(
Patrick Williamsad145e02020-05-19 16:45:15 -050078 'test-vtable',
79 executable(
80 'test-vtable',
81 'vtable/vtable.cpp',
82 'vtable/vtable_c.c',
Patrick Williams617e7492020-06-18 09:28:38 -050083 dependencies: [
84 gtest_dep,
85 sdbusplus_dep,
86 ],
Patrick Williamsad145e02020-05-19 16:45:15 -050087 ),
88)
89
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -070090generated_sources = []
91generated_others = []
92subdir('gen')
93subdir('gen/server')
94
95server_test_pre = declare_dependency(
96 include_directories: include_directories('gen'),
97 dependencies: sdbusplus_dep)
98
William A. Kennington III293c8a22022-09-02 14:35:54 -070099server_test_lib = static_library(
100 'server-test',
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -0700101 generated_sources,
102 implicit_include_directories: false,
103 dependencies: server_test_pre)
104
105generated_sources_header = []
106foreach s : generated_sources
107 foreach f : s.to_list()
108 if f.full_path().endswith('.hpp')
109 generated_sources_header += f
110 endif
111 endforeach
William A. Kennington III293c8a22022-09-02 14:35:54 -0700112endforeach
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -0700113
William A. Kennington III293c8a22022-09-02 14:35:54 -0700114server_test_dep = declare_dependency(
Willam A. Kennington IIIce8d16d2022-09-07 15:46:40 -0700115 sources: generated_sources_header,
116 link_with: server_test_lib,
117 dependencies: server_test_pre)
Patrick Williamsad145e02020-05-19 16:45:15 -0500118
119test(
120 'test-server',
121 executable(
122 'test-server',
123 'server/object.cpp',
Patrick Williamsad145e02020-05-19 16:45:15 -0500124 dependencies: [
125 gmock_dep,
Patrick Williamsad145e02020-05-19 16:45:15 -0500126 gtest_dep,
William A. Kennington III293c8a22022-09-02 14:35:54 -0700127 server_test_dep,
Patrick Williamsad145e02020-05-19 16:45:15 -0500128 ],
129 ),
130)
Patrick Williamsea56ec32021-07-14 07:41:47 -0500131
132test(
133 'test-server-message-variant',
134 executable(
135 'test-server-message-variant',
136 'server/message_variant.cpp',
Patrick Williamsea56ec32021-07-14 07:41:47 -0500137 dependencies: [
138 gmock_dep,
139 gtest_dep,
William A. Kennington III293c8a22022-09-02 14:35:54 -0700140 server_test_dep,
Patrick Williamsea56ec32021-07-14 07:41:47 -0500141 ],
142 ),
143)