blob: e6a0f956eeb43732a99301c6fe05ac5dfb97587b [file] [log] [blame]
George Liu07f94f02022-04-14 14:09:44 +08001gtest_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 Williamsaf2d2a12025-02-01 08:36:41 -050011 ],
George Liu07f94f02022-04-14 14:09:44 +080012 )
13 gmock_dep = gtest_proj.dependency('gmock')
14 else
15 assert(
16 not get_option('tests').enabled(),
Patrick Williamsaf2d2a12025-02-01 08:36:41 -050017 'Googletest is required if tests are enabled',
George Liu07f94f02022-04-14 14:09:44 +080018 )
19 endif
20endif
21
22test_sources = [
23 generated_cpp,
24 gen_serialization_hpp,
25 '../association_manager.cpp',
26 '../manager.cpp',
27 '../functor.cpp',
28 '../errors.cpp',
29]
30
31tests = [
32 'associations_test.cpp',
33 'interface_ops_test.cpp',
34 'manager_test.cpp',
35 'serialize_test.cpp',
36 'types_test.cpp',
37 'utils_test.cpp',
38]
39
40test_deps = [
41 sdbusplus_dep,
42 phosphor_dbus_interfaces_dep,
43 phosphor_logging_dep,
Konstantin Aladyshev58a0c352024-04-22 17:10:47 +030044 nlohmann_json_dep,
Patrick Williamsaf2d2a12025-02-01 08:36:41 -050045 cereal_dep,
George Liu07f94f02022-04-14 14:09:44 +080046]
47
48foreach t : tests
Patrick Williamsaf2d2a12025-02-01 08:36:41 -050049 test(
50 t,
51 executable(
52 t.underscorify(),
53 t,
54 test_sources,
55 include_directories: ['..'],
56 dependencies: [gtest_dep, gmock_dep, test_deps],
57 ),
58 workdir: meson.current_source_dir(),
59 )
George Liu07f94f02022-04-14 14:09:44 +080060endforeach