xref: /openbmc/phosphor-networkd/test/meson.build (revision 6a92363e90d14f6d4df41a0a5f25bfe9014fbe7a)
1gtest = dependency('gtest', main: true, disabler: true, required: false)
2gmock = dependency('gmock', disabler: true, required: false)
3if not gtest.found() or not gmock.found()
4  gtest_opts = import('cmake').subproject_options()
5  gtest_opts.add_cmake_defines({'CMAKE_CXX_FLAGS': '-Wno-pedantic'})
6  gtest_proj = import('cmake').subproject(
7    'googletest',
8    options: gtest_opts,
9    required: false)
10  if gtest_proj.found()
11    gtest = declare_dependency(
12      dependencies: [
13        dependency('threads'),
14        gtest_proj.dependency('gtest'),
15        gtest_proj.dependency('gtest_main'),
16      ])
17    gmock = gtest_proj.dependency('gmock')
18  else
19    assert(not get_option('tests').enabled(), 'Googletest is required')
20  endif
21endif
22
23test_headers = include_directories('.')
24
25test_deps = [
26  meson.get_compiler('cpp').find_library('dl'),
27  networkd_dep,
28  gtest,
29  gmock,
30  dependency('stdplus-gtest'),
31]
32
33test_lib = static_library(
34  'networkd-test',
35  'mock_syscall.cpp',
36  'global_network_objects.cpp',
37  implicit_include_directories: false,
38  include_directories: test_headers,
39  dependencies: test_deps)
40
41test_dep = declare_dependency(
42  dependencies: test_deps,
43  include_directories: test_headers,
44  link_with: test_lib)
45
46tests = [
47  'config_parser',
48  'ethernet_interface',
49  'neighbor',
50  'netlink',
51  'network_manager',
52  'rtnetlink',
53  #'rtnetlink_server',
54  'system_queries',
55  'types',
56  'util',
57]
58
59run_with_tmp = find_program('run_with_tmp', native: true)
60
61add_test_setup(
62  'networkd',
63  exe_wrapper: run_with_tmp,
64  env: {'TMPTMPL': 'phosphor-networkd-test.XXXXXXXXXX'},
65  is_default: true)
66
67add_test_setup(
68  'valgrind',
69  exe_wrapper: [run_with_tmp, 'valgrind'],
70  env: {'TMPTMPL': 'phosphor-networkd-test.XXXXXXXXXX'})
71
72foreach t : tests
73  test(
74    t,
75    executable(
76      t.underscorify(),
77      'test_' + t + '.cpp',
78      implicit_include_directories: false,
79      dependencies: test_dep))
80endforeach
81
82if (get_option('hyp-nw-config') == true)
83  subdir('ibm/hypervisor-network-mgr-test')
84endif
85