xref: /openbmc/google-misc/dhcp-done/subprojects/ncsid/test/meson.build (revision 1285115c16180bd28a3cfe79d9db8d10c84fe2ed)
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