diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-09-29 14:21:40 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2005-09-29 14:21:40 +0000 |
commit | 4f3658be12a882a0e09bba96a01010c50b20ff5c (patch) | |
tree | 6e395ffa3a34ef8da2da76e6e0896ae45970292d /tests | |
parent | 111c97cf888df0ebf9d30125fe2456b9e638cd12 (diff) | |
download | patchelf-4f3658be12a882a0e09bba96a01010c50b20ff5c.tar.gz |
* Added some real tests.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 9 | ||||
-rwxr-xr-x | tests/set-interpreter.sh | 22 | ||||
-rwxr-xr-x | tests/shrink.sh | 21 | ||||
-rw-r--r-- | tests/simple.c | 9 |
4 files changed, 58 insertions, 3 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index bbffa02..e8c176a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,10 +1,13 @@ -check_PROGRAMS = main +check_PROGRAMS = main simple -TESTS = plain-run.sh $(XFAIL_TESTS) +TESTS = plain-run.sh shrink.sh set-interpreter.sh $(XFAIL_TESTS) XFAIL_TESTS = plain-fail.sh +simple_SOURCES = simple.c + + main: main.o libfoo.so LD_LIBRARY_PATH=. $(CC) -o main main.o -L . -lfoo @@ -12,7 +15,7 @@ main.o: main.c $(CC) -fpic -o main.o -c main.c libfoo.so: foo.o libbar.so - $(CC) -shared -o libfoo.so foo.o -L . -lbar + $(CC) -shared -o libfoo.so foo.o -L . -lbar -Wl,-rpath,/no-such-path foo.o: foo.c $(CC) -fpic -o foo.o -c foo.c diff --git a/tests/set-interpreter.sh b/tests/set-interpreter.sh new file mode 100755 index 0000000..5d8a4e9 --- /dev/null +++ b/tests/set-interpreter.sh @@ -0,0 +1,22 @@ +#! /bin/sh -e + +./simple + +oldInterpreter=$(../src/patchelf --print-interpreter ./simple) +echo "current interpreter is $oldInterpreter" + +rm -rf scratch +mkdir -p scratch + +cp simple scratch/ +../src/patchelf --interpreter $(pwd)/scratch/interpreter 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" scratch/interpreter +scratch/simple diff --git a/tests/shrink.sh b/tests/shrink.sh new file mode 100755 index 0000000..fe50346 --- /dev/null +++ b/tests/shrink.sh @@ -0,0 +1,21 @@ +#! /bin/sh -e + +echo -n "RPATH before: " +readelf -a ./libfoo.so | grep RPATH +if ! readelf -a ./libfoo.so | grep RPATH | grep -q /no-such-path; then + echo "incomplete RPATH" + exit 1 +fi + +rm -rf scratch +mkdir -p scratch +cp libfoo.so scratch/ +../src/patchelf --shrink-rpath scratch/libfoo.so + +echo -n "RPATH after: " +readelf -a scratch/libfoo.so | grep RPATH +if readelf -a scratch/libfoo.so | grep RPATH | grep -q /no-such-path; then + echo "incomplete RPATH" + exit 1 +fi + diff --git a/tests/simple.c b/tests/simple.c new file mode 100644 index 0000000..62e6d62 --- /dev/null +++ b/tests/simple.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +char buf[16 * 1024 * 1024]; + +int main(int argc, char * * argv) +{ + printf("Hello World\n"); + return 0; +} |