note a leak that needs fixing eventually
[trinity.git] / scripts / test-all-syscalls-sequentially.sh
blobf3c599f7f2729f1cb14b0b0a815cb31a3e56356c
1 #!/bin/bash
3 # This is a useful test to run occasionally, to see which syscalls are
4 # causing trinity to segfault.
6 OLDPATH=$(pwd)
7 TRINITY_PATH=${TRINITY_PATH:-$OLDPATH}
9 if [ -d tmp ]; then
10 TRINITY_TMP=$(mktemp -d $(pwd)/tmp/trinity.XXXXXX)
11 else
12 TRINITY_TMP=$(mktemp -d /tmp/trinity.XXXXXX)
16 check_tainted()
18 if [ "$(cat /proc/sys/kernel/tainted)" != $TAINT ]; then
19 echo ERROR: Taint flag changed $(cat /proc/sys/kernel/tainted)
20 exit
24 TAINT=$(cat /proc/sys/kernel/tainted)
26 while [ 1 ]
28 for syscall in $($TRINITY_PATH/trinity -L | grep entrypoint | grep -v AVOID | awk '{ print $3 }' | sort -u)
30 chmod 755 $TRINITY_TMP
31 pushd $TRINITY_TMP
33 if [ ! -f $TRINITY_PATH/trinity ]; then
34 echo lost!
35 pwd
36 exit
39 MALLOC_CHECK_=2 $TRINITY_PATH/trinity -q -c $syscall -N 99999 -l off -C 64
40 popd
42 check_tainted
43 echo
44 echo
45 done
46 check_tainted
47 done