summaryrefslogtreecommitdiff
path: root/tests/plain-needed.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/plain-needed.sh')
-rwxr-xr-xtests/plain-needed.sh23
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/plain-needed.sh b/tests/plain-needed.sh
index 36267fb..8967303 100755
--- a/tests/plain-needed.sh
+++ b/tests/plain-needed.sh
@@ -1,4 +1,25 @@
#! /bin/sh
set -e
+
+SCRATCH=scratch/$(basename $0 .sh)
+MAIN_ELF="${SCRATCH}/main"
+
+PATCHELF="../src/patchelf"
+
+rm -rf ${SCRATCH}
+mkdir -p ${SCRATCH}
+cp main ${SCRATCH}/
+
echo "Confirming main requires libfoo"
-../src/patchelf --print-needed main | grep -q libfoo.so
+${PATCHELF} --print-needed "${MAIN_ELF}" | grep -q libfoo.so
+
+echo "Testing --add-needed functionality"
+${PATCHELF} --add-needed bar.so "${MAIN_ELF}"
+${PATCHELF} --print-needed "${MAIN_ELF}" | grep -q bar.so
+
+echo "Testing --remove-needed functionality"
+${PATCHELF} --remove-needed bar.so "${MAIN_ELF}"
+if ${PATCHELF} --print-needed "${MAIN_ELF}" | grep -q bar.so; then
+ echo "ERROR: --remove-needed did not eliminate bar.so!"
+ exit 1
+fi