From c00778d69edd0d952a9fcf479a4b191a5f506024 Mon Sep 17 00:00:00 2001 From: Daniel Sobral Date: Mon, 1 Jul 2019 10:31:10 -0600 Subject: [PATCH] Append instead of overriding trap handler (fixes #6) --- README.md | 1 + osht.sh | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 513f9f9..49316ba 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,7 @@ TODO RUNS false # you can mark known test cases as SKIP when then # are known not to run under some condition SKIP test $(uname -s) == Darwin # Tests dont run under Darwin +``` #### Running Skip Tests diff --git a/osht.sh b/osht.sh index 7411298..66ef90f 100644 --- a/osht.sh +++ b/osht.sh @@ -23,6 +23,7 @@ : ${OSHT_STDIO=$($OSHT_MKTEMP)} : ${OSHT_VERBOSE=} : ${OSHT_WATCH=} +: ${OSHT_OVERRIDE_TRAP=} : ${_OSHT_CURRENT_TEST_FILE=$($OSHT_MKTEMP)} : ${_OSHT_CURRENT_TEST=0} @@ -100,7 +101,19 @@ function _osht_cleanup { exit $rv } -trap _osht_cleanup INT TERM EXIT +appendTrap() { + HANDLER=$1 + shift + SIGNALS="$*" + eval "set -- $(trap -p ${SIGNALS})" + trap -- "${3}${3:+;}${HANDLER}" ${SIGNALS} +} + +if [ -n "$OSHT_OVERRIDE_TRAP" ]; then + trap _osht_cleanup INT TERM EXIT +else + appendTrap _osht_cleanup INT TERM EXIT +fi function _osht_xmlencode { sed -e 's/\&/\&/g' -e 's/\"/\"/g' -e 's//\>/g'