summaryrefslogtreecommitdiff
path: root/tests/set-rpath.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/set-rpath.sh')
-rwxr-xr-xtests/set-rpath.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/set-rpath.sh b/tests/set-rpath.sh
new file mode 100755
index 0000000..90452f9
--- /dev/null
+++ b/tests/set-rpath.sh
@@ -0,0 +1,27 @@
+#! /bin/sh -e
+SCRATCH=scratch/$(basename $0 .sh)
+
+rm -rf ${SCRATCH}
+mkdir -p ${SCRATCH}
+mkdir -p ${SCRATCH}/libsA
+mkdir -p ${SCRATCH}/libsB
+
+cp main ${SCRATCH}/
+cp libfoo.so ${SCRATCH}/libsA/
+cp libbar.so ${SCRATCH}/libsB/
+
+oldRPath=$(../src/patchelf --print-rpath ${SCRATCH}/main)
+if test -z "$oldRPath"; then oldRPath="/oops"; fi
+../src/patchelf --force-rpath --set-rpath $oldRPath:$(pwd)/${SCRATCH}/libsA:$(pwd)/${SCRATCH}/libsB ${SCRATCH}/main
+
+if test "$(uname)" = FreeBSD; then
+ export LD_LIBRARY_PATH=$(pwd)/${SCRATCH}/libsB
+fi
+
+exitCode=0
+(cd ${SCRATCH} && ./main) || exitCode=$?
+
+if test "$exitCode" != 46; then
+ echo "bad exit code!"
+ exit 1
+fi