diff options
Diffstat (limited to 'tests/run-debuginfod-find.sh')
-rwxr-xr-x | tests/run-debuginfod-find.sh | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index fe38eaac..64490107 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -22,10 +22,11 @@ set -x testfiles testfile-debuginfod-0.rpm testfile-debuginfod-1.rpm testfile-debuginfod-2.rpm DB=${PWD}/.debuginfod_tmp.sqlite +tempfiles $DB export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache # clean up trash if we were aborted early -trap 'set +e; kill $PID1 $PID2; rm -rf F R ${PWD}/.client_cache*; exit_cleanup; exit 0' 0 1 2 3 5 9 15 +trap 'kill $PID1 $PID2 || true; rm -rf F R L ${PWD}/.client_cache*; exit_cleanup' 0 1 2 3 5 9 15 # find an unused port number while true; do @@ -42,10 +43,11 @@ done # So we gather the LD_LIBRARY_PATH with this cunning trick: ldpath=`testrun sh -c 'echo $LD_LIBRARY_PATH'` -mkdir F R -tempfiles F R -env DEBUGINFOD_TEST_WEBAPI_SLEEP=3 LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod -vvvv -d $DB \ --p $PORT1 -t0 -g0 R F & +mkdir F R L +tempfiles F R L +ln -s ${abs_builddir}/dwfllines L/foo # any program not used elsewhere in this test + +env DEBUGINFOD_TEST_WEBAPI_SLEEP=3 LD_LIBRARY_PATH=$ldpath DEBUGINFOD_URLS= ${abs_builddir}/../debuginfod/debuginfod -vvvv -d $DB -p $PORT1 -t0 -g0 R F L & PID1=$! sleep 3 export DEBUGINFOD_URLS=http://localhost:$PORT1/ # or without trailing / @@ -171,14 +173,28 @@ done export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache2 mkdir -p $DEBUGINFOD_CACHE_PATH # NB: inherits the DEBUGINFOD_URLS to the first server -env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod -d ${DB}_2 -p $PORT2 & +# NB: run in -L symlink-following mode for the L subdir +env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod -vvvv -d ${DB}_2 -p $PORT2 -L L & PID2=$! +tempfiles ${DB}_2 sleep 3 # have clients contact the new server export DEBUGINFOD_URLS=http://localhost:$PORT2 testrun ${abs_builddir}/debuginfod_build_id_find -e F/prog 1 +# confirm that first server can't resolve symlinked info in L/ but second can +BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a L/foo | grep 'Build ID' | cut -d ' ' -f 7` +file L/foo +file -L L/foo +export DEBUGINFOD_URLS=http://localhost:$PORT1 +rm -rf $DEBUGINFOD_CACHE_PATH +testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID && false || true +export DEBUGINFOD_URLS=http://localhost:$PORT2 +testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID + + # test parallel queries in client export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache3 mkdir -p $DEBUGINFOD_CACHE_PATH @@ -209,15 +225,4 @@ testrun ${abs_builddir}/debuginfod_build_id_find -e F/prog 1 testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID2 && false || true -######################################################################## - -# Ensure debuginfod-find can be safely called with no arguments. -# Use a relative path to prevent automatic line breaks in the output -# due to excessive characters. -testrun_compare ../../debuginfod/debuginfod-find <<EOF -Usage: ../../debuginfod/debuginfod-find debuginfo BUILDID - or: ../../debuginfod/debuginfod-find executable BUILDID - or: ../../debuginfod/debuginfod-find source BUILDID /FILENAME -EOF - exit 0 |