diff options
Diffstat (limited to 'tests/no-rpath-prebuild.sh')
-rwxr-xr-x | tests/no-rpath-prebuild.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/no-rpath-prebuild.sh b/tests/no-rpath-prebuild.sh new file mode 100755 index 0000000..c58cf8e --- /dev/null +++ b/tests/no-rpath-prebuild.sh @@ -0,0 +1,39 @@ +#! /bin/sh -e +set -x +ARCH="$1" +PAGESIZE=4096 + +if [ -z "$ARCH" ]; then + ARCH=$(basename $0 .sh | sed -e 's/^no-rpath-//') +fi + +SCRATCH=scratch/no-rpath-$ARCH + +if [ -z "$ARCH" ] || [ $ARCH = prebuild ] ; then + echo "Architecture required" + exit 1 +fi + +no_rpath_bin="${srcdir}/no-rpath-prebuild/no-rpath-$ARCH" + +if [ ! -f $no_rpath_bin ]; then + echo "no 'no-rpath' binary for '$ARCH' in '${srcdir}/no-rpath-prebuild'" + exit 1 +fi + +rm -rf ${SCRATCH} +mkdir -p ${SCRATCH} + +cp $no_rpath_bin ${SCRATCH}/no-rpath + +oldRPath=$(../src/patchelf --page-size ${PAGESIZE} --print-rpath ${SCRATCH}/no-rpath) +if test -n "$oldRPath"; then exit 1; fi +../src/patchelf --page-size ${PAGESIZE} \ + --set-interpreter "$(../src/patchelf --page-size ${PAGESIZE} --print-interpreter ../src/patchelf)" \ + --set-rpath /foo:/bar:/xxxxxxxxxxxxxxx ${SCRATCH}/no-rpath + +newRPath=$(../src/patchelf --page-size ${PAGESIZE} --print-rpath ${SCRATCH}/no-rpath) +if ! echo "$newRPath" | grep -q '/foo:/bar'; then + echo "incomplete RPATH" + exit 1 +fi |