1#!/bin/sh 2# Valgrind smoke test. 3# Copyright (C) 2022 Free Software Foundation, Inc. 4# This file is part of the GNU C Library. 5 6# The GNU C Library is free software; you can redistribute it and/or 7# modify it under the terms of the GNU Lesser General Public 8# License as published by the Free Software Foundation; either 9# version 2.1 of the License, or (at your option) any later version. 10 11# The GNU C Library is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14# Lesser General Public License for more details. 15 16# You should have received a copy of the GNU Lesser General Public 17# License along with the GNU C Library; if not, see 18# <https://www.gnu.org/licenses/>. 19 20set -e 21 22rtld="$1" 23system_rtld="$2" 24test_wrapper_env="$3" 25run_program_env="$4" 26library_path="$5" 27test_prog="$6" 28 29# Test whether valgrind is available in the test 30# environment. If not, skip the test. 31${test_wrapper_env} ${run_program_env} \ 32 /bin/sh -c "command -v valgrind" || exit 77 33 34# Test valgrind works with the system ld.so in the test environment 35/bin/sh -c \ 36 "${test_wrapper_env} ${run_program_env} \ 37 valgrind -q --error-exitcode=1 \ 38 ${system_rtld} /bin/echo ${system_rtld}" || exit 77 39 40# Finally the actual test inside the test environment, 41# using the just build ld.so and new libraries to run 42# the smoke test under valgrind. 43/bin/sh -c \ 44 "${test_wrapper_env} ${run_program_env} \ 45 valgrind -q --error-exitcode=1 \ 46 ${rtld} --library-path ${library_path} ${test_prog} ${rtld}" 47