xref: /openbmc/google-misc/metrics-ipmi-blobs/subprojects/ncsid/test/meson.build (revision 24c61c7ee8583830fd0916b7b2c7bf0561569e0f)
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',
20*24c61c7eSPatrick Williams        cmake_options: ['-DCMAKE_CXX_FLAGS=-Wno-pedantic'],
21*24c61c7eSPatrick Williams        required: false,
22*24c61c7eSPatrick 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'),
29*24c61c7eSPatrick Williams            ],
30*24c61c7eSPatrick 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',
391285115cSWilliam 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',
47*24c61c7eSPatrick 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,
50*24c61c7eSPatrick Williams    dependencies: ncsid,
51*24c61c7eSPatrick 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,
56*24c61c7eSPatrick Williams    link_with: ncsid_test_lib,
57*24c61c7eSPatrick Williams)
581285115cSWilliam A. Kennington III
591285115cSWilliam A. Kennington IIIforeach t : tests
60*24c61c7eSPatrick Williams    test(
61*24c61c7eSPatrick Williams        t,
62*24c61c7eSPatrick Williams        executable(
63*24c61c7eSPatrick Williams            t.underscorify(),
64*24c61c7eSPatrick Williams            t + '.cpp',
651285115cSWilliam A. Kennington III            implicit_include_directories: false,
66*24c61c7eSPatrick Williams            dependencies: [gtest, gmock, ncsid_test],
67*24c61c7eSPatrick Williams        ),
68*24c61c7eSPatrick Williams    )
691285115cSWilliam A. Kennington IIIendforeach
701285115cSWilliam A. Kennington III
71*24c61c7eSPatrick 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
81*24c61c7eSPatrick Williams    test(
82*24c61c7eSPatrick Williams        st,
83*24c61c7eSPatrick Williams        find_program('bash'),
84*24c61c7eSPatrick Williams        args: files(st + '.sh'),
85*24c61c7eSPatrick Williams        protocol: 'tap',
86*24c61c7eSPatrick Williams        env: script_env,
87*24c61c7eSPatrick Williams        depends: script_deps,
88*24c61c7eSPatrick Williams    )
891285115cSWilliam A. Kennington IIIendforeach
90