@@ -10,6 +10,62 @@ TOOLSDIR=`dirname ${TOOLSPATH}`
1010
1111MLOG=" ${BUILDDIR} /monitor.log"
1212TESTS=" empty foobar 100trying ACK OPTIONS INVITE CANCEL 200OK"
13+ MON_PID=
14+ MON_PIPE_PID=
15+
16+ cleanup ()
17+ {
18+ if [ ! -z " ${MON_PID} " ]
19+ then
20+ kill -TERM " ${MON_PID} " 2> /dev/null || true
21+ wait " ${MON_PID} " 2> /dev/null || true
22+ fi
23+ if [ ! -z " ${MON_PIPE_PID} " ]
24+ then
25+ wait " ${MON_PIPE_PID} " 2> /dev/null || true
26+ fi
27+ }
28+
29+ dump_failure_logs ()
30+ {
31+ echo " ==== basic test failure diagnostics ===="
32+ echo " SRCDIR=${SRCDIR} "
33+ echo " BUILDDIR=${BUILDDIR} "
34+ echo " BRD_IP=${BRD_IP} "
35+ echo " MON_PID=${MON_PID} "
36+ echo " MON_PIPE_PID=${MON_PIPE_PID} "
37+ echo " ---- loopback diagnostics ----"
38+ cat /etc/hosts 2> /dev/null || true
39+ getent hosts localhost 2> /dev/null || true
40+ getent hosts 127.0.0.1 2> /dev/null || true
41+ ip addr show lo 2> /dev/null || true
42+ ip route get 127.0.0.1 2> /dev/null || true
43+ ifconfig lo 2> /dev/null || true
44+ ss -lunp 2> /dev/null || netstat -anu 2> /dev/null || true
45+ python3 -c ' import socket; s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM); s.bind(("127.0.0.1", 0)); print("python bind 127.0.0.1:0 ok", s.getsockname())' 2>&1 || true
46+ echo " ---- generated files ----"
47+ ls -l " ${BUILDDIR} " /* .req " ${BUILDDIR} " /* .res " ${BUILDDIR} " /* .res.pp 2> /dev/null || true
48+ if [ -e " ${MLOG} " ]
49+ then
50+ echo " ---- ${MLOG} ----"
51+ cat " ${MLOG} "
52+ else
53+ echo " monitor log not found: ${MLOG} "
54+ fi
55+ }
56+
57+ finish ()
58+ {
59+ rc=${?}
60+ set +e
61+ if [ ${rc} -ne 0 ]
62+ then
63+ dump_failure_logs
64+ fi
65+ cleanup
66+ exit ${rc}
67+ }
68+ trap finish EXIT
1369
1470if [ -e " ${MLOG} " ]
1571then
1874
1975. " ${SRCDIR} /scripts/test_start.sub"
2076MON_RC=${?}
21- MON_PID=${! }
77+ i=0
78+ while [ ${i} -lt 10 ] && [ ! -s " ${MON_PIDFILE} " ]
79+ do
80+ sleep 1
81+ i=$(( ${i} + 1 ))
82+ done
83+ if [ ! -s " ${MON_PIDFILE} " ]
84+ then
85+ exit 1
86+ fi
87+ MON_PID=` cat " ${MON_PIDFILE} " `
2288
2389. " ${SRCDIR} /scripts/test_waitready.sub"
2490
36102 done
37103 sleep 3
38104fi
39- kill -TERM ${MON_PID}
40- wait ${MON_PID} || true
41105if [ -z " ${BRD_IP} " ]
42106then
43107 exit 1
0 commit comments