xref: /netbsd-src/crypto/external/bsd/heimdal/dist/tests/kdc/leaks-kill.sh (revision 92e958de60c71aa0f2452bd7074cbb006fe6546b)
1#!/bin/sh
2
3name=$1
4pid=$2
5
6ec=0
7
8if [ "$(uname -s)" = "Darwin" ] ; then
9    echo "leaks check on $name ($pid)"
10    leaks -exclude __CFInitialize $pid > leaks-log 2>&1 || \
11        { echo "leaks failed: $?"; cat leaks-log; exit 1; }
12
13    env pid=${pid} \
14    perl -e 'my $excluded = 0; my $num = -1; while (<>) {
15if (/Process $ENV{pid}: (\d+) leaks for \d+ total leaked bytes/) { $num = $1;}
16if (/(\d+) leaks excluded/) { $excluded = $1;}
17}
18exit 1 if ($num != 0 && $num != $excluded);
19exit 0;' leaks-log || \
20	{ echo "Memory leak in $name" ; echo ""; cat leaks-log; ec=1; }
21
22    # [ "$ec" != "0" ] && { env PS1=": leaks-debugger !!!! ; " bash ; }
23
24fi
25
26kill $pid
27sleep 3
28kill -9 $pid 2> /dev/null
29
30rm -f leaks-log
31
32exit $ec
33