blob: 4fbc53ff3cf259fd690eaa3a37e4daae238c8af5 [file] [log] [blame]
Harald Weltee0571462018-02-14 15:42:14 +01001#!/bin/sh
2
Pau Espin Pedrolad931f22019-10-02 13:00:51 +02003PIDFILE_PCAP=/tmp/pcap.pid
4PIDFILE_NETCAT=/tmp/netcat.pid
Pau Espin Pedroldada4c52018-02-15 16:07:23 +01005TESTCASE=$1
Neels Hofmeyrdadde172018-06-18 06:18:34 +02006VERDICT="$2"
7
Pau Espin Pedrolad931f22019-10-02 13:00:51 +02008kill_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
Neels Hofmeyrced8acf2019-02-26 05:03:22 +010022date
23
Neels Hofmeyrdadde172018-06-18 06:18:34 +020024if [ x"$VERDICT" = x"pass" ]; then
Vadim Yanitskiyaa94d322020-05-21 20:36:33 +070025 echo -e "\033[1;32m====== $TESTCASE $VERDICT ======\033[0m"
Neels Hofmeyrdadde172018-06-18 06:18:34 +020026else
Vadim Yanitskiyaa94d322020-05-21 20:36:33 +070027 echo -e "\033[1;31m------ $TESTCASE $VERDICT ------\033[0m"
Neels Hofmeyrdadde172018-06-18 06:18:34 +020028fi
29echo
Pau Espin Pedroldada4c52018-02-15 16:07:23 +010030
31if [ "z$TTCN3_PCAP_PATH" = "z" ]; then
32 TTCN3_PCAP_PATH=/tmp
33fi
34
Vadim Yanitskiy23d66652021-11-28 21:41:07 +030035# Order the SUT to print a talloc report
36if [ "z$OSMO_SUT_HOST" != "z" ] && [ "z$OSMO_SUT_PORT" != "z" ]; then
37 if [ -x "$(command -v osmo_interact_vty.py)" ]; then
38 osmo_interact_vty.py \
39 -H $OSMO_SUT_HOST -p $OSMO_SUT_PORT \
40 -c "en; show talloc-context application full" \
41 > "$TTCN3_PCAP_PATH/$TESTCASE.talloc"
42 else
43 echo "Missing osmo_interact_vty.py from osmo-python-tests!"
44 echo " -> Unable to obtain talloc report from the SUT"
45 fi
46fi
47
Maxe5214452019-03-14 18:15:27 +010048# Wait for up to 2 seconds if we keep receiving traffinc from packet dumper,
Pau Espin Pedroldada4c52018-02-15 16:07:23 +010049# otherwise we might lose last packets from test.
50i=0
51prev_count=-1
52count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcap")
53while [ $count -gt $prev_count ] && [ $i -lt 2 ]
54do
Maxe5214452019-03-14 18:15:27 +010055 echo "Waiting for packet dumper to finish... $i (prev_count=$prev_count, count=$count)"
Pau Espin Pedroldada4c52018-02-15 16:07:23 +010056 sleep 1
57 prev_count=$count
58 count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcap")
59 i=$((i+1))
60done
Harald Weltee0571462018-02-14 15:42:14 +010061
Pau Espin Pedrolad931f22019-10-02 13:00:51 +020062kill_rm_pidfile "$PIDFILE_PCAP"
63kill_rm_pidfile "$PIDFILE_NETCAT"
Vadim Yanitskiyf949f462020-07-12 15:49:37 +070064
Vadim Yanitskiyeb662c82020-07-13 05:50:06 +070065gzip -f "$TTCN3_PCAP_PATH/$TESTCASE.pcap"