1*1285115cSWilliam A. Kennington III# Copyright 2021 Google LLC 2*1285115cSWilliam A. Kennington III# 3*1285115cSWilliam A. Kennington III# Licensed under the Apache License, Version 2.0 (the "License"); 4*1285115cSWilliam A. Kennington III# you may not use this file except in compliance with the License. 5*1285115cSWilliam A. Kennington III# You may obtain a copy of the License at 6*1285115cSWilliam A. Kennington III# 7*1285115cSWilliam A. Kennington III# http://www.apache.org/licenses/LICENSE-2.0 8*1285115cSWilliam A. Kennington III# 9*1285115cSWilliam A. Kennington III# Unless required by applicable law or agreed to in writing, software 10*1285115cSWilliam A. Kennington III# distributed under the License is distributed on an "AS IS" BASIS, 11*1285115cSWilliam A. Kennington III# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*1285115cSWilliam A. Kennington III# See the License for the specific language governing permissions and 13*1285115cSWilliam A. Kennington III# limitations under the License. 14*1285115cSWilliam A. Kennington III 15*1285115cSWilliam A. Kennington IIIgtest = dependency('gtest', main: true, disabler: true, required: false) 16*1285115cSWilliam A. Kennington IIIgmock = dependency('gmock', disabler: true, required: false) 17*1285115cSWilliam A. Kennington IIIif not gtest.found() or not gmock.found() 18*1285115cSWilliam A. Kennington III gtest_proj = import('cmake').subproject( 19*1285115cSWilliam A. Kennington III 'googletest', 20*1285115cSWilliam A. Kennington III cmake_options: [ 21*1285115cSWilliam A. Kennington III '-DCMAKE_CXX_FLAGS=-Wno-pedantic', 22*1285115cSWilliam A. Kennington III ], 23*1285115cSWilliam A. Kennington III required: false) 24*1285115cSWilliam A. Kennington III if gtest_proj.found() 25*1285115cSWilliam A. Kennington III gtest = declare_dependency( 26*1285115cSWilliam A. Kennington III dependencies: [ 27*1285115cSWilliam A. Kennington III dependency('threads'), 28*1285115cSWilliam A. Kennington III gtest_proj.dependency('gtest'), 29*1285115cSWilliam A. Kennington III gtest_proj.dependency('gtest_main'), 30*1285115cSWilliam A. Kennington III ]) 31*1285115cSWilliam A. Kennington III gmock = gtest_proj.dependency('gmock') 32*1285115cSWilliam A. Kennington III else 33*1285115cSWilliam A. Kennington III assert(not build_tests.enabled(), 'Googletest is required') 34*1285115cSWilliam A. Kennington III endif 35*1285115cSWilliam A. Kennington IIIendif 36*1285115cSWilliam A. Kennington III 37*1285115cSWilliam A. Kennington IIItests = [ 38*1285115cSWilliam A. Kennington III 'iface_test', 39*1285115cSWilliam A. Kennington III 'sock_test', 40*1285115cSWilliam A. Kennington III #'ncsi_test', # TODO: Re-enable when fixed 41*1285115cSWilliam A. Kennington III] 42*1285115cSWilliam A. Kennington III 43*1285115cSWilliam A. Kennington IIIncsid_test_headers = include_directories('.') 44*1285115cSWilliam A. Kennington III 45*1285115cSWilliam A. Kennington IIIncsid_test_lib = static_library( 46*1285115cSWilliam A. Kennington III 'ncsid_test', 47*1285115cSWilliam A. Kennington III [ 48*1285115cSWilliam A. Kennington III 'net_iface_mock.cpp', 49*1285115cSWilliam A. Kennington III 'nic_mock.cpp', 50*1285115cSWilliam A. Kennington III ], 51*1285115cSWilliam A. Kennington III include_directories: ncsid_test_headers, 52*1285115cSWilliam A. Kennington III implicit_include_directories: false, 53*1285115cSWilliam A. Kennington III dependencies: ncsid) 54*1285115cSWilliam A. Kennington III 55*1285115cSWilliam A. Kennington IIIncsid_test = declare_dependency( 56*1285115cSWilliam A. Kennington III dependencies: ncsid, 57*1285115cSWilliam A. Kennington III include_directories: ncsid_test_headers, 58*1285115cSWilliam A. Kennington III link_with: ncsid_test_lib) 59*1285115cSWilliam A. Kennington III 60*1285115cSWilliam A. Kennington IIIforeach t : tests 61*1285115cSWilliam A. Kennington III test(t, executable(t.underscorify(), t + '.cpp', 62*1285115cSWilliam A. Kennington III implicit_include_directories: false, 63*1285115cSWilliam A. Kennington III dependencies: [gtest, gmock, ncsid_test])) 64*1285115cSWilliam A. Kennington IIIendforeach 65*1285115cSWilliam A. Kennington III 66*1285115cSWilliam A. Kennington IIIscript_tests = [ 67*1285115cSWilliam A. Kennington III 'normalize_ip_test', 68*1285115cSWilliam A. Kennington III 'normalize_mac_test', 69*1285115cSWilliam A. Kennington III] 70*1285115cSWilliam A. Kennington III 71*1285115cSWilliam A. Kennington IIIscript_env = environment() 72*1285115cSWilliam A. Kennington IIIscript_deps = [] 73*1285115cSWilliam A. Kennington IIIscript_env.set('NORMALIZE_IP', normalize_ip.full_path()) 74*1285115cSWilliam A. Kennington IIIscript_deps += normalize_ip 75*1285115cSWilliam A. Kennington IIIscript_env.set('NORMALIZE_MAC', normalize_mac.full_path()) 76*1285115cSWilliam A. Kennington IIIscript_deps += normalize_mac 77*1285115cSWilliam A. Kennington III 78*1285115cSWilliam A. Kennington IIIforeach st : script_tests 79*1285115cSWilliam A. Kennington III test(st, find_program('bash'), args: files(st + '.sh'), 80*1285115cSWilliam A. Kennington III protocol: 'tap', env: script_env, depends: script_deps) 81*1285115cSWilliam A. Kennington IIIendforeach 82