xref: /openbmc/phosphor-networkd/test/meson.build (revision 297a63b46b2eae315e91b2c69239e23dbf52c22e)
10a01b2a9SWilliam A. Kennington IIIgtest = dependency('gtest', main: true, disabler: true, required: false)
20a01b2a9SWilliam A. Kennington IIIgmock = dependency('gmock', disabler: true, required: false)
30a01b2a9SWilliam A. Kennington IIIif not gtest.found() or not gmock.found()
40a01b2a9SWilliam A. Kennington III    gtest_opts = import('cmake').subproject_options()
50a01b2a9SWilliam A. Kennington III    gtest_opts.add_cmake_defines({'CMAKE_CXX_FLAGS': '-Wno-pedantic'})
60a01b2a9SWilliam A. Kennington III    gtest_proj = import('cmake').subproject(
70a01b2a9SWilliam A. Kennington III        'googletest',
80a01b2a9SWilliam A. Kennington III        options: gtest_opts,
9*297a63b4SPatrick Williams        required: false,
10*297a63b4SPatrick Williams    )
110a01b2a9SWilliam A. Kennington III    if gtest_proj.found()
120a01b2a9SWilliam A. Kennington III        gtest = declare_dependency(
130a01b2a9SWilliam A. Kennington III            dependencies: [
140a01b2a9SWilliam A. Kennington III                dependency('threads'),
150a01b2a9SWilliam A. Kennington III                gtest_proj.dependency('gtest'),
160a01b2a9SWilliam A. Kennington III                gtest_proj.dependency('gtest_main'),
17*297a63b4SPatrick Williams            ],
18*297a63b4SPatrick Williams        )
190a01b2a9SWilliam A. Kennington III        gmock = gtest_proj.dependency('gmock')
200a01b2a9SWilliam A. Kennington III    else
21fc3aff91SWilliam A. Kennington III        assert(not get_option('tests').enabled(), 'Googletest is required')
220a01b2a9SWilliam A. Kennington III    endif
230a01b2a9SWilliam A. Kennington IIIendif
240a01b2a9SWilliam A. Kennington III
250a01b2a9SWilliam A. Kennington IIItest_headers = include_directories('.')
260a01b2a9SWilliam A. Kennington III
270a01b2a9SWilliam A. Kennington IIItest_deps = [
280a01b2a9SWilliam A. Kennington III    meson.get_compiler('cpp').find_library('dl'),
290a01b2a9SWilliam A. Kennington III    networkd_dep,
300a01b2a9SWilliam A. Kennington III    gtest,
310a01b2a9SWilliam A. Kennington III    gmock,
3284bfe679SWilliam A. Kennington III    dependency('stdplus-gtest'),
330a01b2a9SWilliam A. Kennington III]
340a01b2a9SWilliam A. Kennington III
350a01b2a9SWilliam A. Kennington IIItest_lib = static_library(
360a01b2a9SWilliam A. Kennington III    'networkd-test',
370a01b2a9SWilliam A. Kennington III    'mock_syscall.cpp',
380a01b2a9SWilliam A. Kennington III    implicit_include_directories: false,
390a01b2a9SWilliam A. Kennington III    include_directories: test_headers,
40*297a63b4SPatrick Williams    dependencies: test_deps,
41*297a63b4SPatrick Williams)
420a01b2a9SWilliam A. Kennington III
430a01b2a9SWilliam A. Kennington IIItest_dep = declare_dependency(
440a01b2a9SWilliam A. Kennington III    dependencies: test_deps,
450a01b2a9SWilliam A. Kennington III    include_directories: test_headers,
46*297a63b4SPatrick Williams    link_with: test_lib,
47*297a63b4SPatrick Williams)
480a01b2a9SWilliam A. Kennington III
490a01b2a9SWilliam A. Kennington IIItests = [
500a01b2a9SWilliam A. Kennington III    'config_parser',
510a01b2a9SWilliam A. Kennington III    'ethernet_interface',
520a01b2a9SWilliam A. Kennington III    'netlink',
530a01b2a9SWilliam A. Kennington III    'network_manager',
546a92363eSWilliam A. Kennington III    'rtnetlink',
55bb0eaccbSWilliam A. Kennington III    'types',
560a01b2a9SWilliam A. Kennington III    'util',
570a01b2a9SWilliam A. Kennington III]
580a01b2a9SWilliam A. Kennington III
5984bfe679SWilliam A. Kennington IIIrun_with_tmp = find_program('run_with_tmp', native: true)
6084bfe679SWilliam A. Kennington III
617ba2d560SWilliam A. Kennington IIIadd_test_setup(
627ba2d560SWilliam A. Kennington III    'networkd',
637ba2d560SWilliam A. Kennington III    exe_wrapper: run_with_tmp,
647ba2d560SWilliam A. Kennington III    env: {'TMPTMPL': 'phosphor-networkd-test.XXXXXXXXXX'},
65*297a63b4SPatrick Williams    is_default: true,
66*297a63b4SPatrick Williams)
677ba2d560SWilliam A. Kennington III
687ba2d560SWilliam A. Kennington IIIadd_test_setup(
697ba2d560SWilliam A. Kennington III    'valgrind',
707ba2d560SWilliam A. Kennington III    exe_wrapper: [run_with_tmp, 'valgrind'],
71*297a63b4SPatrick Williams    env: {'TMPTMPL': 'phosphor-networkd-test.XXXXXXXXXX'},
72*297a63b4SPatrick Williams)
737ba2d560SWilliam A. Kennington III
740a01b2a9SWilliam A. Kennington IIIforeach t : tests
750a01b2a9SWilliam A. Kennington III    test(
760a01b2a9SWilliam A. Kennington III        t,
777ba2d560SWilliam A. Kennington III        executable(
780a01b2a9SWilliam A. Kennington III            t.underscorify(),
790a01b2a9SWilliam A. Kennington III            'test_' + t + '.cpp',
800a01b2a9SWilliam A. Kennington III            implicit_include_directories: false,
81*297a63b4SPatrick Williams            dependencies: test_dep,
82*297a63b4SPatrick Williams        ),
83*297a63b4SPatrick Williams    )
840a01b2a9SWilliam A. Kennington IIIendforeach
85a6c07570SAsmitha Karunanithi
86a6c07570SAsmitha Karunanithiif (get_option('hyp-nw-config') == true)
87a6c07570SAsmitha Karunanithi    subdir('ibm/hypervisor-network-mgr-test')
88a6c07570SAsmitha Karunanithiendif
89