xref: /openbmc/phosphor-dbus-monitor/src/test/meson.build (revision 2b31c9882ddd7b0cabb6d18484e2887201932401)
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
22pathgentest_hpp = custom_target(
23    'pathgentest.hpp',
24    command: [
25        prog_python,
26        meson.project_source_root() + '/src/pdmgen.py',
27        '-t', 'pathgentest.mako.hpp',
28        '-p', meson.project_source_root() + '/src/test/templates',
29        '-d', meson.project_source_root() + '/src/test/yaml/pathgentest',
30        '-o', meson.current_build_dir() + '/pathgentest.hpp',
31        '-e', meson.current_build_dir() + '/pathgentest-errors.hpp',
32        'generate-cpp'
33    ],
34    input: [
35        'templates/pathgentest.mako.hpp',
36        'yaml/pathgentest/groupone.yaml',
37        'yaml/pathgentest/grouptwo.yaml',
38    ],
39    output: 'pathgentest.hpp',
40)
41
42pathgentest_sources = [
43    pathgentest_hpp,
44    'pathgentest.cpp',
45]
46
47test('pathgentest.cpp',
48  executable(
49    'pathgentest',
50    pathgentest_sources,
51    build_by_default: false,
52    include_directories: ['..'],
53    dependencies: [gtest_dep, gmock_dep]
54  ))
55
56
57propertygentest_hpp = custom_target(
58    'propertygentest.hpp',
59    command: [
60        prog_python,
61        meson.project_source_root() + '/src/pdmgen.py',
62        '-t', 'propertygentest.mako.hpp',
63        '-p', meson.project_source_root() + '/src/test/templates',
64        '-d', meson.project_source_root() + '/src/test/yaml/propertygentest',
65        '-o', meson.current_build_dir() + '/propertygentest.hpp',
66        '-e', meson.current_build_dir() + '/propertygentest-errors.hpp',
67        'generate-cpp'
68    ],
69    input: [
70        'templates/propertygentest.mako.hpp',
71        'yaml/propertygentest/groupone.yaml',
72        'yaml/propertygentest/grouptwo.yaml',
73    ],
74    output: 'propertygentest.hpp',
75)
76
77propertygentest_sources = [
78    propertygentest_hpp,
79    'propertygentest.cpp',
80]
81
82test('propertygentest.cpp',
83  executable(
84    'propertygentest',
85    propertygentest_sources,
86    build_by_default: false,
87    include_directories: ['..'],
88    dependencies: [gtest_dep, gmock_dep]
89  ))
90
91
92propertywatchgentest_hpp = custom_target(
93    'propertywatchgentest.hpp',
94    command: [
95        prog_python,
96        meson.project_source_root() + '/src/pdmgen.py',
97        '-t', 'propertywatchgentest.mako.hpp',
98        '-p', meson.project_source_root() + '/src/test/templates',
99        '-d', meson.project_source_root() + '/src/test/yaml/propertywatchgentest',
100        '-o', meson.current_build_dir() + '/propertywatchgentest.hpp',
101        '-e', meson.current_build_dir() + '/propertywatchgentest-errors.hpp',
102        'generate-cpp'
103    ],
104    input: [
105        'templates/propertywatchgentest.mako.hpp',
106        'yaml/propertywatchgentest/watchone.yaml',
107        'yaml/propertywatchgentest/watchtwo.yaml',
108    ],
109    output: 'propertywatchgentest.hpp',
110)
111
112propertywatchgentest_sources = [
113    propertywatchgentest_hpp,
114    'propertywatchgentest.cpp',
115]
116
117test('propertywatchgentest.cpp',
118  executable(
119    'propertywatchgentest',
120    propertywatchgentest_sources,
121    build_by_default: false,
122    include_directories: ['..'],
123    dependencies: [gtest_dep, gmock_dep]
124  ))
125
126
127callbackgentest_hpp = custom_target(
128    'callbackgentest.hpp',
129    command: [
130        prog_python,
131        meson.project_source_root() + '/src/pdmgen.py',
132        '-t', 'callbackgentest.mako.hpp',
133        '-p', meson.project_source_root() + '/src/test/templates',
134        '-d', meson.project_source_root() + '/src/test/yaml/callbackgentest',
135        '-o', meson.current_build_dir() + '/callbackgentest.hpp',
136        '-e', meson.current_build_dir() + '/callbackgentest-errors.hpp',
137        'generate-cpp'
138    ],
139    input: [
140        'templates/callbackgentest.mako.hpp',
141        'yaml/callbackgentest/one.yaml',
142        'yaml/callbackgentest/two.yaml',
143    ],
144    output: 'callbackgentest.hpp',
145)
146
147callbackgentest_sources = [
148    callbackgentest_hpp,
149    'callbackgentest.cpp',
150]
151
152test('callbackgentest.cpp',
153  executable(
154    'callbackgentest',
155    callbackgentest_sources,
156    build_by_default: false,
157    include_directories: ['..'],
158    dependencies: [gtest_dep, gmock_dep]
159  ))
160
161
162callbackgroupgentest_hpp = custom_target(
163    'callbackgroupgentest.hpp',
164    command: [
165        prog_python,
166        meson.project_source_root() + '/src/pdmgen.py',
167        '-t', 'callbackgroupgentest.mako.hpp',
168        '-p', meson.project_source_root() + '/src/test/templates',
169        '-d', meson.project_source_root() + '/src/test/yaml/callbackgroupgentest',
170        '-o', meson.current_build_dir() + '/callbackgroupgentest.hpp',
171        '-e', meson.current_build_dir() + '/callbackgroupgentest-errors.hpp',
172        'generate-cpp'
173    ],
174    input: [
175        'templates/callbackgroupgentest.mako.hpp',
176        'yaml/callbackgroupgentest/test.yaml',
177    ],
178    output: 'callbackgroupgentest.hpp',
179)
180
181callbackgroupgentest_sources = [
182    callbackgroupgentest_hpp,
183    'callbackgroupgentest.cpp',
184]
185
186test('callbackgroupgentest.cpp',
187  executable(
188    'callbackgroupgentest',
189    callbackgroupgentest_sources,
190    build_by_default: false,
191    include_directories: ['..'],
192    dependencies: [gtest_dep, gmock_dep]
193  ))
194
195
196conditiongentest_hpp = custom_target(
197    'conditiongentest.hpp',
198    command: [
199        prog_python,
200        meson.project_source_root() + '/src/pdmgen.py',
201        '-t', 'conditiongentest.mako.hpp',
202        '-p', meson.project_source_root() + '/src/test/templates',
203        '-d', meson.project_source_root() + '/src/test/yaml/conditiongentest',
204        '-o', meson.current_build_dir() + '/conditiongentest.hpp',
205        '-e', meson.current_build_dir() + '/conditiongentest-errors.hpp',
206        'generate-cpp'
207    ],
208    input: [
209        'templates/conditiongentest.mako.hpp',
210        'yaml/conditiongentest/test.yaml',
211    ],
212    output: 'conditiongentest.hpp',
213)
214
215conditiongentest_sources = [
216    conditiongentest_hpp,
217    'conditiongentest.cpp',
218]
219
220test('conditiongentest.cpp',
221  executable(
222    'conditiongentest',
223    conditiongentest_sources,
224    build_by_default: false,
225    include_directories: ['..'],
226    dependencies: [gtest_dep, gmock_dep]
227  ))
228
229
230callbacktest_sources = [
231    generated_hpp,
232    'callbacktest.cpp',
233    '../journal.cpp',
234    '../elog.cpp',
235    '../resolve_errors.cpp',
236    '../event_manager.cpp',
237    '../event_serialize.cpp',
238]
239
240callbacktest_deps = [
241    sdbusplus_dep,
242    sdeventplus_dep,
243    phosphor_dbus_interfaces_dep,
244    phosphor_logging_dep,
245    gtest_dep,
246    gmock_dep,
247]
248
249test('callbacktest.cpp',
250  executable(
251    'callbacktest',
252    callbacktest_sources,
253    build_by_default: false,
254    include_directories: ['..', '../../'],
255    dependencies: callbacktest_deps,
256  ))
257
258
259interfaceaddtest_hpp = custom_target(
260    'interfaceaddtest.hpp',
261    command: [
262        prog_python,
263        meson.project_source_root() + '/src/pdmgen.py',
264        '-t', 'interfaceaddtest.mako.hpp',
265        '-p', meson.project_source_root() + '/src/test/templates',
266        '-d', meson.project_source_root() + '/src/test/yaml/interfaceaddtest',
267        '-o', meson.current_build_dir() + '/interfaceaddtest.hpp',
268        '-e', meson.current_build_dir() + '/interfaceaddtest-errors.hpp',
269        'generate-cpp'
270    ],
271    input: [
272        'templates/interfaceaddtest.mako.hpp',
273        'yaml/interfaceaddtest/one.yaml',
274    ],
275    output: 'interfaceaddtest.hpp',
276)
277
278interfaceaddtest_sources = [
279    interfaceaddtest_hpp,
280    'interfaceaddtest.cpp',
281]
282
283test('interfaceaddtest.cpp',
284  executable(
285    'interfaceaddtest',
286    interfaceaddtest_sources,
287    build_by_default: false,
288    include_directories: ['..'],
289    dependencies: [gtest_dep, gmock_dep]
290  ))
291