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', 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', 'netlink', 'network_manager', 'rtnetlink', 'types', 'util', ] 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