| # Copyright 2021 Google LLC |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| 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_proj = import('cmake').subproject( |
| 'googletest', |
| cmake_options: ['-DCMAKE_CXX_FLAGS=-Wno-pedantic'], |
| 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 build_tests.allowed(), 'Googletest is required') |
| endif |
| endif |
| |
| tests = [ |
| 'iface_test', |
| #'sock_test', |
| #'ncsi_test', # TODO: Re-enable when fixed |
| ] |
| |
| ncsid_test_headers = include_directories('.') |
| |
| ncsid_test_lib = static_library( |
| 'ncsid_test', |
| ['net_iface_mock.cpp', 'nic_mock.cpp'], |
| include_directories: ncsid_test_headers, |
| implicit_include_directories: false, |
| dependencies: ncsid, |
| ) |
| |
| ncsid_test = declare_dependency( |
| dependencies: ncsid, |
| include_directories: ncsid_test_headers, |
| link_with: ncsid_test_lib, |
| ) |
| |
| foreach t : tests |
| test( |
| t, |
| executable( |
| t.underscorify(), |
| t + '.cpp', |
| implicit_include_directories: false, |
| dependencies: [gtest, gmock, ncsid_test], |
| ), |
| ) |
| endforeach |
| |
| script_tests = ['normalize_ip_test', 'normalize_mac_test'] |
| |
| script_env = environment() |
| script_deps = [] |
| script_env.set('NORMALIZE_IP', normalize_ip.full_path()) |
| script_deps += normalize_ip |
| script_env.set('NORMALIZE_MAC', normalize_mac.full_path()) |
| script_deps += normalize_mac |
| |
| foreach st : script_tests |
| test( |
| st, |
| find_program('bash'), |
| args: files(st + '.sh'), |
| protocol: 'tap', |
| env: script_env, |
| depends: script_deps, |
| ) |
| endforeach |