summaryrefslogtreecommitdiff
path: root/tests/set-interpreter-long.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/set-interpreter-long.sh')
-rwxr-xr-xtests/set-interpreter-long.sh34
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