blob: 188b8da4e70b377539b84e4435c27510e469d078 [file] [log] [blame]
Harald Welte7c295362020-12-11 15:30:56 +01001#!/bin/sh
2
3PIDFILE_PCAP=/tmp/pcap.pid
4PIDFILE_NETCAT=/tmp/netcat.pid
5TESTCASE=$1
6VERDICT="$2"
7
8kill_rm_pidfile() {
9if [ -e $1 ]; then
10 PSNAME="$(ps -q "$(cat "$1")" -o comm=)"
11 if [ "$PSNAME" != "sudo" ]; then
12 kill "$(cat "$1")"
13 else
14 # NOTE: This requires you to be root or something like
15 # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file
16 sudo kill "$(cat "$1")"
17 fi
18 rm $1
19fi
20}
21
22date
23
24if [ x"$VERDICT" = x"pass" ]; then
Vadim Yanitskiy80726d82022-12-18 20:36:27 +070025 printf "\033[1;32m====== $TESTCASE $VERDICT ======\033[0m\n\n"
Harald Welte7c295362020-12-11 15:30:56 +010026else
Vadim Yanitskiy80726d82022-12-18 20:36:27 +070027 printf "\033[1;31m------ $TESTCASE $VERDICT ------\033[0m\n\n"
Harald Welte7c295362020-12-11 15:30:56 +010028fi
Harald Welte7c295362020-12-11 15:30:56 +010029
30if [ "z$TTCN3_PCAP_PATH" = "z" ]; then
31 TTCN3_PCAP_PATH=/tmp
32fi
33
34# Wait for up to 2 seconds if we keep receiving traffinc from packet dumper,
35# otherwise we might lose last packets from test.
36i=0
37prev_count=-1
38count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcapng")
39while [ $count -gt $prev_count ] && [ $i -lt 2 ]
40do
41 echo "Waiting for packet dumper to finish... $i (prev_count=$prev_count, count=$count)"
42 sleep 1
43 prev_count=$count
44 count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcapng")
45 i=$((i+1))
46done
47
48kill_rm_pidfile "$PIDFILE_PCAP"
49kill_rm_pidfile "$PIDFILE_NETCAT"
50
51gzip -f "$TTCN3_PCAP_PATH/$TESTCASE.pcapng"