xref: /aosp_15_r20/external/libwebsockets/scripts/ctest-background-kill.sh (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker#!/bin/bash
2*1c60b9acSAndroid Build Coastguard Worker#
3*1c60b9acSAndroid Build Coastguard Worker# $SAI_INSTANCE_IDX - which instance of sai, 0+
4*1c60b9acSAndroid Build Coastguard Worker# $1  - background fixture name, unique within test space, like "multipostlocalsrv"
5*1c60b9acSAndroid Build Coastguard Worker# $2  - executable
6*1c60b9acSAndroid Build Coastguard Worker# $3+ - args
7*1c60b9acSAndroid Build Coastguard Worker
8*1c60b9acSAndroid Build Coastguard Workerecho "$0 $1 $2 $3 $4"
9*1c60b9acSAndroid Build Coastguard Worker
10*1c60b9acSAndroid Build Coastguard WorkerJ=`basename $2`.$1.$SAI_INSTANCE_IDX
11*1c60b9acSAndroid Build Coastguard WorkerPI=`cat /tmp/sai-ctest-$J`
12*1c60b9acSAndroid Build Coastguard Worker
13*1c60b9acSAndroid Build Coastguard Worker#
14*1c60b9acSAndroid Build Coastguard Worker# We expect our background process to initially still be around
15*1c60b9acSAndroid Build Coastguard Worker#
16*1c60b9acSAndroid Build Coastguard Worker
17*1c60b9acSAndroid Build Coastguard Workerkill -0 $PI
18*1c60b9acSAndroid Build Coastguard WorkerGONESKI=$?
19*1c60b9acSAndroid Build Coastguard Worker
20*1c60b9acSAndroid Build Coastguard Workerecho "Background task $PI: $J"
21*1c60b9acSAndroid Build Coastguard Worker
22*1c60b9acSAndroid Build Coastguard Workerif [ $GONESKI -eq 1 ] ; then
23*1c60b9acSAndroid Build Coastguard Worker	echo "Background Process $PI unexpectedly dead already, their log"
24*1c60b9acSAndroid Build Coastguard Worker	cat /tmp/ctest-background-$J
25*1c60b9acSAndroid Build Coastguard Worker	exit 1
26*1c60b9acSAndroid Build Coastguard Workerfi
27*1c60b9acSAndroid Build Coastguard Worker
28*1c60b9acSAndroid Build Coastguard Workerecho "Trying SIGTERM..."
29*1c60b9acSAndroid Build Coastguard Worker
30*1c60b9acSAndroid Build Coastguard Workerkill $PI
31*1c60b9acSAndroid Build Coastguard Worker
32*1c60b9acSAndroid Build Coastguard Worker#
33*1c60b9acSAndroid Build Coastguard Worker# 100ms intervals, 100 = 10s
34*1c60b9acSAndroid Build Coastguard Worker# need to allow time for valgrind case
35*1c60b9acSAndroid Build Coastguard Worker#
36*1c60b9acSAndroid Build Coastguard WorkerBUDGET=100
37*1c60b9acSAndroid Build Coastguard Workerwhile [ $BUDGET -ne 0 ] ; do
38*1c60b9acSAndroid Build Coastguard Worker	sleep 0.1
39*1c60b9acSAndroid Build Coastguard Worker	kill -0 $PI 2>&1
40*1c60b9acSAndroid Build Coastguard Worker	if [ $? -eq 1 ] ; then
41*1c60b9acSAndroid Build Coastguard Worker		echo "Went down OK"
42*1c60b9acSAndroid Build Coastguard Worker		exit 0
43*1c60b9acSAndroid Build Coastguard Worker	fi
44*1c60b9acSAndroid Build Coastguard Worker	BUDGET=$(( $BUDGET - 1 ))
45*1c60b9acSAndroid Build Coastguard Workerdone
46*1c60b9acSAndroid Build Coastguard Worker
47*1c60b9acSAndroid Build Coastguard Workerecho "Trying SIGKILL..."
48*1c60b9acSAndroid Build Coastguard Worker
49*1c60b9acSAndroid Build Coastguard Workerkill -9 $PI
50*1c60b9acSAndroid Build Coastguard Worker
51*1c60b9acSAndroid Build Coastguard Worker#
52*1c60b9acSAndroid Build Coastguard Worker# 100ms intervals, 100 = 10s
53*1c60b9acSAndroid Build Coastguard Worker# need to allow time for valgrind case
54*1c60b9acSAndroid Build Coastguard Worker#
55*1c60b9acSAndroid Build Coastguard WorkerBUDGET=20
56*1c60b9acSAndroid Build Coastguard Workerwhile [ $BUDGET -ne 0 ] ; do
57*1c60b9acSAndroid Build Coastguard Worker	sleep 0.1
58*1c60b9acSAndroid Build Coastguard Worker	kill -0 $PI 2>&1
59*1c60b9acSAndroid Build Coastguard Worker	if [ $? -eq 1 ] ; then
60*1c60b9acSAndroid Build Coastguard Worker		echo "Went down OK after SIGKILL"
61*1c60b9acSAndroid Build Coastguard Worker		exit 0
62*1c60b9acSAndroid Build Coastguard Worker	fi
63*1c60b9acSAndroid Build Coastguard Worker	BUDGET=$(( $BUDGET - 1 ))
64*1c60b9acSAndroid Build Coastguard Workerdone
65*1c60b9acSAndroid Build Coastguard Worker
66*1c60b9acSAndroid Build Coastguard Workerecho "Couldn't kill it"
67*1c60b9acSAndroid Build Coastguard Workerexit 1
68