diff --git a/tests/all_ipcs.test b/tests/all_ipcs.test index ae95f3a..b8730f7 100755 --- a/tests/all_ipcs.test +++ b/tests/all_ipcs.test @@ -1,103 +1,103 @@ #!/bin/sh # Rn all of the IPC testsin one script. This is needed because # make check could run with -j and the start and resource 'tests' # need to run first and last respectively. # # Generate a unique(ish) name for the IPCs we will use in the tests and # save it in a file for all of the tests to use. This way we know for sure # which sockets are our and which we can ignore. # The test programs all add "qb-test--" to the front of this. # NAME="$$-$(date +%s)" printf "$NAME" > ipc-test-name mkdir -p $SOCKETDIR # Normal IPC test ./ipc.test # filesystem socket IPC test ./ipc_sock.test # Check and clean up RETURN=0 SOCKS_PER_PROCESS=3 EXPECTED_DLOCK=6 EXPECTED_LEFTOVER=2 # Linux also runs filesystem socket tests if [ "$(uname -s)" = "Linux" ] && [ "`id -u`" = "0" ] then EXPECTED_DLOCK=12 EXPECTED_LEFTOVER=4 fi tidy_qb_dirs() { for dd in "$@"; do rm $dd rmdir $(dirname $dd) 2> /dev/null done } IPC_NAME=$(cat ipc-test-name 2>/dev/null) for d in /dev/shm /var/run $SOCKETDIR; do # Tidy up the deadlock checker sockets first dlocks=$(find $d -name "qb-*-test_*dlock*${IPC_NAME}*" -size +0c 2>/dev/null) if [ "$(echo $dlocks|wc -w)" -eq $(($SOCKS_PER_PROCESS * $EXPECTED_DLOCK)) ]; then tidy_qb_dirs $dlocks rm $dlocks elif [ -n "${dlocks}" ]; then echo echo "Error: dlock shared memory segments not closed/unlinked" echo RETURN=1 fi # Now look for other expected leftovers leftovers=$(find $d -name "qb-*-test_*${IPC_NAME}*" -size +0c 2>/dev/null | wc -l) if [ "${leftovers}" -gt 0 ]; then echo echo "Error: shared memory segments not closed/unlinked" echo RETURN=1 fi leftovers="$(find $d -name "qb-*-test_*${IPC_NAME}*" -size 0c 2>/dev/null)" if [ "$(printf '%s\n' "${leftovers}" | wc -l)" -eq $(($SOCKS_PER_PROCESS * $EXPECTED_LEFTOVER)) ]; then echo echo "There were some empty leftovers (expected), removing them" echo "${leftovers}" echo tidy_qb_dirs $leftovers elif [ -n "${leftovers}" ]; then echo echo "Error: unexpected number of empty leftovers" echo "${leftovers}" echo RETURN=1 fi done # Clean up empty /dev/shm directories left over by some tests -DIRS=$(grep "Free'ing ringbuffer" ipc.log ipc_sock.log| cut -f4 -d ' '|cut -f-4 -d'/'|sort|uniq) +DIRS=$(grep "Free'ing ringbuffer" all_ipcs.log | cut -f4 -d ' '|cut -f-4 -d'/'|sort|uniq) for i in $DIRS do rmdir $i 2>/dev/null done ps aux | grep -v grep | grep -E 'lt-.*\.test' if [ $? -eq 0 ]; then echo "test program frozen" RETURN=1 fi # Keep it tidy - distcheck checks we have not left a mess rm -f ipc-test-name rm -f crash_test_dummy.core exit $RETURN