diff options
Diffstat (limited to 'tests/set-interpreter-long.sh')
-rwxr-xr-x | tests/set-interpreter-long.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/set-interpreter-long.sh b/tests/set-interpreter-long.sh new file mode 100755 index 0000000..058ccd2 --- /dev/null +++ b/tests/set-interpreter-long.sh @@ -0,0 +1,34 @@ +#! /bin/sh -e +SCRATCH=scratch/$(basename $0 .sh) + +./simple + +oldInterpreter=$(../src/patchelf --print-interpreter ./simple) +echo "current interpreter is $oldInterpreter" + +if test "$(uname)" = Linux; then + echo "running with explicit interpreter..." + "$oldInterpreter" ./simple +fi + +rm -rf ${SCRATCH} +mkdir -p ${SCRATCH} + +newInterpreter=$(pwd)/${SCRATCH}/iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +cp simple ${SCRATCH}/ +../src/patchelf --set-interpreter "$newInterpreter" ${SCRATCH}/simple + +echo "running with missing interpreter..." +if ${SCRATCH}/simple; then + echo "simple works, but it shouldn't" + exit 1 +fi + +echo "running with new interpreter..." +ln -s "$oldInterpreter" "$newInterpreter" +${SCRATCH}/simple + +if test "$(uname)" = Linux; then + echo "running with explicit interpreter..." + "$oldInterpreter" ${SCRATCH}/simple +fi |