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
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,
44    nlohmann_json_dep,
45    cereal_dep
46]
47
48foreach t : tests
49    test(t, executable(t.underscorify(), t,
50                     test_sources,
51                     include_directories: ['..'],
52                     dependencies: [
53                         gtest_dep,
54                         gmock_dep,
55                         test_deps,
56                         ]),
57        workdir: meson.current_source_dir())
58endforeach
59