make test: properly handle ctrl-c
Change-Id: Iab88886ebc1582626813777ea45ce97fc8e36443 Signed-off-by: Klement Sekera <ksekera@cisco.com>
This commit is contained in:

committed by
Dave Wallace

parent
3214dc3823
commit
db4e84cf2f
@ -13,6 +13,14 @@ else
|
||||
VPP_PIDS=$(shell pgrep -d, -x vpp_main)
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG),gdb)
|
||||
FORCE_FOREGROUND=1
|
||||
else ifeq ($(DEBUG),gdbserver)
|
||||
FORCE_FOREGROUND=1
|
||||
else
|
||||
FORCE_FOREGROUND=0
|
||||
endif
|
||||
|
||||
verify-no-running-vpp:
|
||||
@if [ "$(VPP_PIDS)" != "" ]; then \
|
||||
echo; \
|
||||
@ -76,7 +84,7 @@ $(PAPI_INSTALL_DONE): $(PIP_PATCH_DONE)
|
||||
@touch $@
|
||||
|
||||
define retest-func
|
||||
@bash -c "source $(PYTHON_VENV_PATH)/bin/activate && setsid scripts/run_with_cleanup.sh python run_tests.py -d $(TEST_DIR) $(UNITTEST_EXTRA_OPTS)"
|
||||
@scripts/setsid_wrapper.sh $(FORCE_FOREGROUND) $(PYTHON_VENV_PATH)/bin/activate python run_tests.py -d $(TEST_DIR) $(UNITTEST_EXTRA_OPTS)
|
||||
endef
|
||||
|
||||
.PHONY: sanity
|
||||
|
@ -17,9 +17,22 @@ atexit() {
|
||||
exit $rv
|
||||
}
|
||||
|
||||
trap "atexit" SIGINT SIGTERM
|
||||
trap "atexit;" SIGINT SIGTERM
|
||||
|
||||
FORCE_FOREGROUND=$1
|
||||
shift
|
||||
|
||||
source $1
|
||||
shift
|
||||
|
||||
if [[ "${FORCE_FOREGROUND}" == "1" ]]
|
||||
then
|
||||
$*
|
||||
else
|
||||
$* &
|
||||
wait
|
||||
fi
|
||||
|
||||
$*
|
||||
rv=$?
|
||||
atexit
|
||||
exit $rv
|
12
test/scripts/setsid_wrapper.sh
Executable file
12
test/scripts/setsid_wrapper.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$1" == "1" ]]
|
||||
then
|
||||
setsid scripts/run_in_venv_with_cleanup.sh $*
|
||||
pid=$!
|
||||
else
|
||||
setsid scripts/run_in_venv_with_cleanup.sh $* &
|
||||
pid=$!
|
||||
trap "echo setsid_wrapper.sh: got signal, killing child pid ${pid}; kill ${pid}; sleep .1;" SIGINT SIGTERM
|
||||
wait
|
||||
fi
|
Reference in New Issue
Block a user