# 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