| # 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.enabled(), '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 |