1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
#
# SPDX-License-Identifier: BSD-3-Clause
#
# Copyright © 2025 Keith Packard
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
#
tests_mem = [
'test-memchr',
'test-memchr-simple',
'test-memcpy_s',
'test-memmem',
'test-memmove_s',
'test-memset',
'test-memset_s',
'test-strcat_s',
'test-strchr',
'test-strcpy_s',
'test-strerrorlen_s',
'test-strerror_s',
'test-strncat_s',
'test-strncpy',
'test-strncpy_s',
'test-strnlen_s',
]
tests_string = tests_mem
foreach params : targets
target = params['name']
target_dir = params['dir']
target_c_args = params['c_args']
_libs = [get_variable('lib_c' + target)]
if is_variable('lib_semihost' + target)
_libs += [get_variable('lib_semihost' + target)]
endif
_lib_files=[]
foreach _lib : _libs
_lib_files += _lib.full_path()
endforeach
if is_variable(crt0_test + target)
_objs = [get_variable(crt0_test + target)]
else
_objs = []
endif
_c_args = target_c_args + get_variable('test_c_args' + target, test_c_args)
_link_args = target_c_args + _lib_files + get_variable('test_link_args' + target, test_link_args)
_link_depends = get_variable('test_link_depends' + target, test_link_depends) + _libs
foreach t1 : tests_string
t1_src = t1 + '.c'
test_file_name_arg=['-DTEST_FILE_NAME="' + t1 + target + '.txt"']
test(t1 + target,
executable(t1 + target, [t1_src],
c_args: printf_compile_args_d + test_file_name_arg + _c_args,
link_args: printf_link_args_d + _link_args,
objects: _objs,
link_depends: _link_depends,
include_directories: inc),
depends: bios_bin,
timeout: 60,
suite: 'test-string',
env: test_env)
endforeach
endforeach
if enable_native_tests
foreach t1 : tests_string
t1_src = t1 + '.c'
t1_name = t1 + '-native'
test_file_name_arg=['-DTEST_FILE_NAME="' + t1_name + '.txt"']
test(t1_name,
executable(t1_name, t1_src,
c_args: native_c_args + ctype_c_args,
link_args: native_c_args),
suite: 'test-string'
)
endforeach
endif
|