File: resources.test

package info (click to toggle)
libqb 2.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,092 kB
  • sloc: ansic: 22,191; sh: 5,232; makefile: 607
file content (91 lines) | stat: -rwxr-xr-x 2,226 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/sh
RETURN=0
SOCKS_PER_PROCESS=3
EXPECTED_DLOCK=6
EXPECTED_LEFTOVER=2

tidy_qb_dirs()
{
    for dd in "$@"; do
	rm $dd
	rmdir $(dirname $dd) 2> /dev/null
    done
}

tidy_dlock_sockets()
{
    IPC_NAME=$1
    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)"
	expected=$(($SOCKS_PER_PROCESS * $EXPECTED_LEFTOVER))
	if [ "$(printf '%s\n' "${leftovers}" | wc -l)" -eq "$expected" ]; 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. expected ${expected}"
	    echo "${leftovers}"
	    echo
	    RETURN=1
	fi
    done
    return $RETURN
}


IPC_NAME=$(cat ipc-test-name 2>/dev/null)
tidy_dlock_sockets $IPC_NAME
RETURN=$?

# Linux also runs filesystem socket tests
if [ "$(uname -s)" = "Linux" ] && [ "`id -u`" = "0" ]
then
    IPC_NAME=$(cat ipc-test-name-sock 2>/dev/null)
    tidy_dlock_sockets $IPC_NAME
    if [ $? -ne 0 ]
    then
	RETURN=$?
    fi
fi

# Clean up empty /dev/shm directories left over by some tests
DIRS=$(grep "Free'ing ringbuffer" ipc.log sock_ipc_wrapper.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