| gtest = dependency('gtest', main: true, disabler: true, required: false) |
| gmock = dependency('gmock', disabler: true, required: false) |
| if not gtest.found() or not gmock.found() |
| gtest_opts = import('cmake').subproject_options() |
| gtest_opts.add_cmake_defines({'CMAKE_CXX_FLAGS': '-Wno-pedantic'}) |
| gtest_proj = import('cmake').subproject( |
| 'googletest', |
| options: gtest_opts, |
| required: false) |
| if gtest_proj.found() |
| gtest = declare_dependency( |
| dependencies: [ |
| dependency('threads'), |
| gtest_proj.dependency('gtest'), |
| gtest_proj.dependency('gtest_main'), |
| ]) |
| gmock = gtest_proj.dependency('gmock') |
| else |
| assert(not get_option('tests').enabled(), 'Googletest is required') |
| endif |
| endif |
| |
| test_headers = include_directories('.') |
| |
| test_deps = [ |
| meson.get_compiler('cpp').find_library('dl'), |
| networkd_dep, |
| gtest, |
| gmock, |
| dependency('stdplus-gtest'), |
| ] |
| |
| test_lib = static_library( |
| 'networkd-test', |
| 'mock_syscall.cpp', |
| 'global_network_objects.cpp', |
| implicit_include_directories: false, |
| include_directories: test_headers, |
| dependencies: test_deps) |
| |
| test_dep = declare_dependency( |
| dependencies: test_deps, |
| include_directories: test_headers, |
| link_with: test_lib) |
| |
| tests = [ |
| 'config_parser', |
| 'ethernet_interface', |
| 'ipaddress', |
| 'neighbor', |
| 'netlink', |
| 'network_manager', |
| #'rtnetlink', |
| 'util', |
| 'vlan_interface', |
| ] |
| |
| run_with_tmp = find_program('run_with_tmp', native: true) |
| |
| add_test_setup( |
| 'networkd', |
| exe_wrapper: run_with_tmp, |
| env: {'TMPTMPL': 'phosphor-networkd-test.XXXXXXXXXX'}, |
| is_default: true) |
| |
| add_test_setup( |
| 'valgrind', |
| exe_wrapper: [run_with_tmp, 'valgrind'], |
| env: {'TMPTMPL': 'phosphor-networkd-test.XXXXXXXXXX'}) |
| |
| foreach t : tests |
| test( |
| t, |
| executable( |
| t.underscorify(), |
| 'test_' + t + '.cpp', |
| implicit_include_directories: false, |
| dependencies: test_dep)) |
| endforeach |
| |
| if (get_option('hyp-nw-config') == true) |
| subdir('ibm/hypervisor-network-mgr-test') |
| endif |