From 016373931dfa85ffe195f1c9108e708c32f99973 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Tue, 16 Jan 2024 14:22:55 -0600 Subject: [PATCH] tests: Kill daemons on ^C --- tests/gss/check-basic.in | 9 ++++++++- tests/gss/check-context.in | 9 ++++++++- tests/gss/check-gssmask.in | 17 +++++++++++++---- tests/gss/check-negoex.in | 2 -- tests/gss/check-nodns.in | 9 ++++++++- tests/gss/check-ntlm.in | 9 ++++++++- tests/gss/check-spnego.in | 9 ++++++++- tests/java/check-kinit.in | 9 ++++++++- tests/kdc/check-bx509.in | 9 ++++++++- tests/kdc/check-canon.in | 9 ++++++++- tests/kdc/check-cc.in | 9 ++++++++- tests/kdc/check-delegation.in | 9 ++++++++- tests/kdc/check-des.in | 9 ++++++++- tests/kdc/check-digest.in | 9 ++++++++- tests/kdc/check-fast.in | 9 ++++++++- tests/kdc/check-hdb-mitdb.in | 9 ++++++++- tests/kdc/check-httpkadmind.in | 3 ++- tests/kdc/check-iprop.in | 3 ++- tests/kdc/check-kadmin.in | 9 ++++++++- tests/kdc/check-kdc.in | 10 ++++++++-- tests/kdc/check-kinit.in | 10 +++++++++- tests/kdc/check-kpasswdd.in | 9 ++++++++- tests/kdc/check-pkinit.in | 10 +++++++++- tests/kdc/check-referral.in | 9 ++++++++- tests/kdc/check-uu.in | 9 ++++++++- tests/ldap/check-ldap.in | 16 +++++++++++++--- tests/plugin/check-pac.in | 9 ++++++++- 27 files changed, 208 insertions(+), 34 deletions(-) diff --git a/tests/gss/check-basic.in b/tests/gss/check-basic.in index c5151c4c9..54737c196 100644 --- a/tests/gss/check-basic.in +++ b/tests/gss/check-basic.in @@ -97,7 +97,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; cat messages.log; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM exitcode=0 diff --git a/tests/gss/check-context.in b/tests/gss/check-context.in index 2b866d2f7..f73f93486 100644 --- a/tests/gss/check-context.in +++ b/tests/gss/check-context.in @@ -118,7 +118,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM testfailed="echo test failed; cat messages.log; exit 1" diff --git a/tests/gss/check-gssmask.in b/tests/gss/check-gssmask.in index 539e2e94e..d8d610246 100644 --- a/tests/gss/check-gssmask.in +++ b/tests/gss/check-gssmask.in @@ -92,12 +92,23 @@ ${kadmin} add -p u1 --use-defaults user1@${R} || exit 1 echo "Doing database check" ${kadmin} check ${R} || exit 1 +kdcpid= +n1pid= +n2pid= +n3pid= +cleanup() { + echo signal killing kdcs + kill -9 ${kdcpid} ${n1pid} ${n2pid} ${n3pid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM + echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT - exitcode=0 echo "Starting client 1" @@ -115,8 +126,6 @@ echo "Starting client 3" ${gssmaskn3} --moniker=n3 & n3pid=$! -trap "kill ${kdcpid} ${n1pid} ${n2pid} ${n3pid} 2> /dev/null; echo signal killing kdc and maskar; exit 1;" EXIT - sleep 10 # --wrap-ext diff --git a/tests/gss/check-negoex.in b/tests/gss/check-negoex.in index 063e0c113..e44e26cbf 100644 --- a/tests/gss/check-negoex.in +++ b/tests/gss/check-negoex.in @@ -273,6 +273,4 @@ for mech in spnego spnegoiov; do done -trap "" EXIT - exit $exitcode diff --git a/tests/gss/check-nodns.in b/tests/gss/check-nodns.in index 799e55378..a44b3a4b8 100644 --- a/tests/gss/check-nodns.in +++ b/tests/gss/check-nodns.in @@ -97,7 +97,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; cat messages.log; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM exitcode=0 diff --git a/tests/gss/check-ntlm.in b/tests/gss/check-ntlm.in index f953630d0..12cecaead 100644 --- a/tests/gss/check-ntlm.in +++ b/tests/gss/check-ntlm.in @@ -110,7 +110,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM exitcode=0 diff --git a/tests/gss/check-spnego.in b/tests/gss/check-spnego.in index d6e4d8331..5cfaa009f 100644 --- a/tests/gss/check-spnego.in +++ b/tests/gss/check-spnego.in @@ -109,7 +109,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM exitcode=0 diff --git a/tests/java/check-kinit.in b/tests/java/check-kinit.in index 820334474..2ae053334 100644 --- a/tests/java/check-kinit.in +++ b/tests/java/check-kinit.in @@ -93,7 +93,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM echo "Run init" java \ diff --git a/tests/kdc/check-bx509.in b/tests/kdc/check-bx509.in index 6d894effb..8f82a7230 100644 --- a/tests/kdc/check-bx509.in +++ b/tests/kdc/check-bx509.in @@ -118,7 +118,14 @@ mkdir -p authz_dir kdcpid= bx509pid= test_csr_authorizer_pid= -trap 'kill -9 ${kdcpid} ${bx509pid} ${test_csr_authorizer_pid}; echo signal killing kdc, bx509d, and test_csr_authorizer; exit 1;' EXIT +cleanup() { + echo signal killing kdc, bx509d, and test_csr_authorizer + kill -9 ${kdcpid} ${bx509pid} ${test_csr_authorizer_pid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM # csr_grant ext-type value grantee_principal csr_grant() { diff --git a/tests/kdc/check-canon.in b/tests/kdc/check-canon.in index 18b83a9b7..1fe3031e7 100644 --- a/tests/kdc/check-canon.in +++ b/tests/kdc/check-canon.in @@ -102,7 +102,14 @@ echo "Starting kdc" ; > messages.log ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-cc.in b/tests/kdc/check-cc.in index 46e846a10..c78a20d27 100644 --- a/tests/kdc/check-cc.in +++ b/tests/kdc/check-cc.in @@ -96,7 +96,14 @@ kcmpid=`getpid kcm` HEIM_IPC_DIR=${objdir} export HEIM_IPC_DIR -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-delegation.in b/tests/kdc/check-delegation.in index fdff0f6a0..4b4652a0e 100644 --- a/tests/kdc/check-delegation.in +++ b/tests/kdc/check-delegation.in @@ -105,7 +105,14 @@ echo Starting kdc; > messages.log ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-des.in b/tests/kdc/check-des.in index 144613df4..d94092901 100644 --- a/tests/kdc/check-des.in +++ b/tests/kdc/check-des.in @@ -99,7 +99,14 @@ echo Starting kdc; > messages.log ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-digest.in b/tests/kdc/check-digest.in index d934f4e28..5e80ae997 100644 --- a/tests/kdc/check-digest.in +++ b/tests/kdc/check-digest.in @@ -98,7 +98,14 @@ env ${HEIM_MALLOC_DEBUG} ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; cat messages.log; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM exitcode=0 diff --git a/tests/kdc/check-fast.in b/tests/kdc/check-fast.in index d1683f2e7..b3f58ba2d 100644 --- a/tests/kdc/check-fast.in +++ b/tests/kdc/check-fast.in @@ -91,7 +91,14 @@ env MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocErrorAbort=1 Malloc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; cat messages.log; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-hdb-mitdb.in b/tests/kdc/check-hdb-mitdb.in index b5ce24a8d..4ab408936 100644 --- a/tests/kdc/check-hdb-mitdb.in +++ b/tests/kdc/check-hdb-mitdb.in @@ -89,7 +89,14 @@ env MallocStackLogging=1 MallocStackLoggingNoCompact=1 MallocErrorAbort=1 Malloc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-httpkadmind.in b/tests/kdc/check-httpkadmind.in index 9707fc14b..16d4402b2 100644 --- a/tests/kdc/check-httpkadmind.in +++ b/tests/kdc/check-httpkadmind.in @@ -224,8 +224,9 @@ cleanup() { { echo signal killing kadmind; kill -9 "$kadmindpid"; } test -n "$kadmind2pid" && { echo signal killing kadmind; kill -9 "$kadmind2pid"; } + trap '' EXIT INT TERM } -trap cleanup EXIT +trap cleanup EXIT INT TERM rm -f extracted_keytab diff --git a/tests/kdc/check-iprop.in b/tests/kdc/check-iprop.in index 524379393..649438931 100644 --- a/tests/kdc/check-iprop.in +++ b/tests/kdc/check-iprop.in @@ -307,11 +307,12 @@ cleanup() { test -n "$ipds" && kill -9 $ipds >/dev/null 2>/dev/null test -n "$ipds2" && kill -9 $ipds2 >/dev/null 2>/dev/null test -n "$kdcpid" && kill -9 $kdcpid >/dev/null 2>/dev/null + trap '' EXIT INT TERM tail messages.log tail iprop-stats exit 1 } -trap cleanup EXIT +trap cleanup EXIT INT TERM echo Starting kdc ; > messages.log ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } diff --git a/tests/kdc/check-kadmin.in b/tests/kdc/check-kadmin.in index 339868bfb..ffa9fd6cd 100644 --- a/tests/kdc/check-kadmin.in +++ b/tests/kdc/check-kadmin.in @@ -105,7 +105,14 @@ ${kadmind} --detach --list-chunk-size=1 \ || { echo "kadmind failed to start"; cat messages.log; exit 1; } kadmpid=`getpid kadmind` -trap "kill -9 ${kdcpid} ${kadmpid}" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} ${kadmpid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM #---------------------------------- echo "kinit (no admin); test mod --alias authorization" diff --git a/tests/kdc/check-kdc.in b/tests/kdc/check-kdc.in index 307312e1f..202cb59b3 100644 --- a/tests/kdc/check-kdc.in +++ b/tests/kdc/check-kdc.in @@ -378,8 +378,14 @@ env ${HEIM_MALLOC_DEBUG} ${kpasswdd} --detach || { echo "kpasswdd failed to start"; exit 1; } kpasswddpid=`getpid kpasswdd` - -trap "kill -9 ${kdcpid} ${kpasswddpid}; echo signal killing kdc kpasswdd; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} ${kpasswddpid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-kinit.in b/tests/kdc/check-kinit.in index c6cb23ff6..c85701c04 100644 --- a/tests/kdc/check-kinit.in +++ b/tests/kdc/check-kinit.in @@ -75,6 +75,14 @@ kinit_out=${objdir}/out-kinit-torture-kinit parent_shell_proc=$$ +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} + if (($# == 0)); then echo "This is a MANUAL test." @@ -110,7 +118,7 @@ if (($# == 0)); then ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` - trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT + trap cleanup EXIT INT TERM ec=0 else diff --git a/tests/kdc/check-kpasswdd.in b/tests/kdc/check-kpasswdd.in index 39f12e1be..8fe89ce56 100644 --- a/tests/kdc/check-kpasswdd.in +++ b/tests/kdc/check-kpasswdd.in @@ -111,7 +111,14 @@ env ${HEIM_MALLOC_DEBUG} ${kpasswdd} --detach || { echo "kpasswdd failed to start"; exit 1; } kpasswddpid=`getpid kpasswdd` -trap "kill -9 ${kdcpid} ${kpasswddpid}; echo signal killing kdc; exit \$ec;" EXIT +cleanup() { + echo signal killing kdc and kpasswdd + kill -9 ${kdcpid} ${kpasswddpid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-pkinit.in b/tests/kdc/check-pkinit.in index 571a64e9c..82bf6a7e0 100644 --- a/tests/kdc/check-pkinit.in +++ b/tests/kdc/check-pkinit.in @@ -207,7 +207,15 @@ KRB5_CONFIG="${objdir}/krb5-pkinit2.conf" ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap 'kill -9 ${kdcpid}; echo signal killing kdc; cat ca.crt kdc.crt pkinit.crt pkinit-synthetic.crt; exit 1;' EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + cat ca.crt kdc.crt pkinit.crt pkinit-synthetic.crt + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-referral.in b/tests/kdc/check-referral.in index 49f6a52e4..170280115 100644 --- a/tests/kdc/check-referral.in +++ b/tests/kdc/check-referral.in @@ -148,7 +148,14 @@ echo Starting kdc ; > messages.log ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/kdc/check-uu.in b/tests/kdc/check-uu.in index ef831ca4d..68b71b381 100644 --- a/tests/kdc/check-uu.in +++ b/tests/kdc/check-uu.in @@ -89,7 +89,14 @@ echo Starting kdc ; > messages.log ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill -9 ${kdcpid} ${uuspid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} ${uuspid} 2>/dev/null + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0 diff --git a/tests/ldap/check-ldap.in b/tests/ldap/check-ldap.in index f73eb6e1b..0f092c1cb 100644 --- a/tests/ldap/check-ldap.in +++ b/tests/ldap/check-ldap.in @@ -91,7 +91,19 @@ done sh ${objdir}/slapd-init || exit 1 -trap "sh ${srcdir}/slapd-stop ; exit 1;" EXIT +kdcpid= +cleanup() { + if test -n "$kdcpid"; then + echo signal killing kdc + kill -9 ${kdcpid} 2>/dev/null + fi + echo Stopping slapd + sh ${srcdir}/slapd-stop + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM rm -f current-db* @@ -123,8 +135,6 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill ${kdcpid}; echo signal killing kdc; sh ${srcdir}/slapd-stop ; exit 1;" EXIT - ec=0 echo "Getting client initial tickets"; diff --git a/tests/plugin/check-pac.in b/tests/plugin/check-pac.in index 85bf8cd9a..595d70e1c 100644 --- a/tests/plugin/check-pac.in +++ b/tests/plugin/check-pac.in @@ -111,7 +111,14 @@ echo Starting kdc ${kdc} --detach --testing || { echo "kdc failed to start"; cat messages.log; exit 1; } kdcpid=`getpid kdc` -trap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT +cleanup() { + echo signal killing kdc + kill -9 ${kdcpid} + trap '' EXIT INT TERM + cat messages.log + exit 1 +} +trap cleanup EXIT INT TERM ec=0