1#!/bin/sh 2# Test how rtld loads itself. 3# Copyright (C) 2012-2022 Free Software Foundation, Inc. 4# This file is part of the GNU C Library. 5# 6 7# The GNU C Library is free software; you can redistribute it and/or 8# modify it under the terms of the GNU Lesser General Public 9# License as published by the Free Software Foundation; either 10# version 2.1 of the License, or (at your option) any later version. 11 12# The GNU C Library is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15# Lesser General Public License for more details. 16 17# You should have received a copy of the GNU Lesser General Public 18# License along with the GNU C Library; if not, see 19# <https://www.gnu.org/licenses/>. 20 21set -e 22 23rtld=$1 24test_wrapper=$2 25test_wrapper_env=$3 26result=0 27 28echo '# normal mode' 29${test_wrapper} $rtld $rtld 2>&1 && rc=0 || rc=$? 30echo "# exit status $rc" 31test $rc -le 127 || result=1 32 33echo '# list mode' 34${test_wrapper} $rtld --list $rtld 2>&1 && rc=0 || rc=$? 35echo "# exit status $rc" 36test $rc -eq 0 || result=1 37 38echo '# verify mode' 39${test_wrapper} $rtld --verify $rtld 2>&1 && rc=0 || rc=$? 40echo "# exit status $rc" 41test $rc -eq 2 || result=1 42 43echo '# trace mode' 44${test_wrapper_env} LD_TRACE_LOADED_OBJECTS=1 \ 45 $rtld $rtld 2>&1 && rc=0 || rc=$? 46echo "# exit status $rc" 47test $rc -eq 0 || result=1 48 49exit $result 50