11285115cSWilliam A. Kennington III# Copyright 2021 Google LLC 21285115cSWilliam A. Kennington III# 31285115cSWilliam A. Kennington III# Licensed under the Apache License, Version 2.0 (the "License"); 41285115cSWilliam A. Kennington III# you may not use this file except in compliance with the License. 51285115cSWilliam A. Kennington III# You may obtain a copy of the License at 61285115cSWilliam A. Kennington III# 71285115cSWilliam A. Kennington III# http://www.apache.org/licenses/LICENSE-2.0 81285115cSWilliam A. Kennington III# 91285115cSWilliam A. Kennington III# Unless required by applicable law or agreed to in writing, software 101285115cSWilliam A. Kennington III# distributed under the License is distributed on an "AS IS" BASIS, 111285115cSWilliam A. Kennington III# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121285115cSWilliam A. Kennington III# See the License for the specific language governing permissions and 131285115cSWilliam A. Kennington III# limitations under the License. 141285115cSWilliam A. Kennington III 151285115cSWilliam A. Kennington IIIgtest = dependency('gtest', main: true, disabler: true, required: false) 161285115cSWilliam A. Kennington IIIgmock = dependency('gmock', disabler: true, required: false) 171285115cSWilliam A. Kennington IIIif not gtest.found() or not gmock.found() 181285115cSWilliam A. Kennington III gtest_proj = import('cmake').subproject( 191285115cSWilliam A. Kennington III 'googletest', 2024c61c7eSPatrick Williams cmake_options: ['-DCMAKE_CXX_FLAGS=-Wno-pedantic'], 2124c61c7eSPatrick Williams required: false, 2224c61c7eSPatrick Williams ) 231285115cSWilliam A. Kennington III if gtest_proj.found() 241285115cSWilliam A. Kennington III gtest = declare_dependency( 251285115cSWilliam A. Kennington III dependencies: [ 261285115cSWilliam A. Kennington III dependency('threads'), 271285115cSWilliam A. Kennington III gtest_proj.dependency('gtest'), 281285115cSWilliam A. Kennington III gtest_proj.dependency('gtest_main'), 2924c61c7eSPatrick Williams ], 3024c61c7eSPatrick Williams ) 311285115cSWilliam A. Kennington III gmock = gtest_proj.dependency('gmock') 321285115cSWilliam A. Kennington III else 3347a0ada2SPatrick Williams assert(not build_tests.allowed(), 'Googletest is required') 341285115cSWilliam A. Kennington III endif 351285115cSWilliam A. Kennington IIIendif 361285115cSWilliam A. Kennington III 371285115cSWilliam A. Kennington IIItests = [ 381285115cSWilliam A. Kennington III 'iface_test', 39*7c15db6fSWilliam A. Kennington III #'sock_test', 401285115cSWilliam A. Kennington III #'ncsi_test', # TODO: Re-enable when fixed 411285115cSWilliam A. Kennington III] 421285115cSWilliam A. Kennington III 431285115cSWilliam A. Kennington IIIncsid_test_headers = include_directories('.') 441285115cSWilliam A. Kennington III 451285115cSWilliam A. Kennington IIIncsid_test_lib = static_library( 461285115cSWilliam A. Kennington III 'ncsid_test', 4724c61c7eSPatrick Williams ['net_iface_mock.cpp', 'nic_mock.cpp'], 481285115cSWilliam A. Kennington III include_directories: ncsid_test_headers, 491285115cSWilliam A. Kennington III implicit_include_directories: false, 5024c61c7eSPatrick Williams dependencies: ncsid, 5124c61c7eSPatrick Williams) 521285115cSWilliam A. Kennington III 531285115cSWilliam A. Kennington IIIncsid_test = declare_dependency( 541285115cSWilliam A. Kennington III dependencies: ncsid, 551285115cSWilliam A. Kennington III include_directories: ncsid_test_headers, 5624c61c7eSPatrick Williams link_with: ncsid_test_lib, 5724c61c7eSPatrick Williams) 581285115cSWilliam A. Kennington III 591285115cSWilliam A. Kennington IIIforeach t : tests 6024c61c7eSPatrick Williams test( 6124c61c7eSPatrick Williams t, 6224c61c7eSPatrick Williams executable( 6324c61c7eSPatrick Williams t.underscorify(), 6424c61c7eSPatrick Williams t + '.cpp', 651285115cSWilliam A. Kennington III implicit_include_directories: false, 6624c61c7eSPatrick Williams dependencies: [gtest, gmock, ncsid_test], 6724c61c7eSPatrick Williams ), 6824c61c7eSPatrick Williams ) 691285115cSWilliam A. Kennington IIIendforeach 701285115cSWilliam A. Kennington III 7124c61c7eSPatrick Williamsscript_tests = ['normalize_ip_test', 'normalize_mac_test'] 721285115cSWilliam A. Kennington III 731285115cSWilliam A. Kennington IIIscript_env = environment() 741285115cSWilliam A. Kennington IIIscript_deps = [] 751285115cSWilliam A. Kennington IIIscript_env.set('NORMALIZE_IP', normalize_ip.full_path()) 761285115cSWilliam A. Kennington IIIscript_deps += normalize_ip 771285115cSWilliam A. Kennington IIIscript_env.set('NORMALIZE_MAC', normalize_mac.full_path()) 781285115cSWilliam A. Kennington IIIscript_deps += normalize_mac 791285115cSWilliam A. Kennington III 801285115cSWilliam A. Kennington IIIforeach st : script_tests 8124c61c7eSPatrick Williams test( 8224c61c7eSPatrick Williams st, 8324c61c7eSPatrick Williams find_program('bash'), 8424c61c7eSPatrick Williams args: files(st + '.sh'), 8524c61c7eSPatrick Williams protocol: 'tap', 8624c61c7eSPatrick Williams env: script_env, 8724c61c7eSPatrick Williams depends: script_deps, 8824c61c7eSPatrick Williams ) 891285115cSWilliam A. Kennington IIIendforeach 90