#! /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
