From: Mark Wooding Date: Mon, 20 Sep 2021 23:01:02 +0000 (+0100) Subject: server/tests.at: Abstract out the wait-for-knock machinery. X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/commitdiff_plain/18969e42a11e11ef8a3ea81eaf0038e8e74e004d server/tests.at: Abstract out the wait-for-knock machinery. We'll want it again soon. --- diff --git a/server/tests.at b/server/tests.at index ef2039ae..582503a9 100644 --- a/server/tests.at +++ b/server/tests.at @@ -779,26 +779,32 @@ for i in alice bob; do (mkdir $i; cd $i; SETUPDIR([gamma])); done WITH_2TRIPES([alice], [bob], [-nslip], [-talice], [-tbob], [ WITH_MITM([alice], [=bob_from_alice], [bob], [=alice_from_bob], [ - COPROCESSES([wait-knock], [ - echo WATCH +n - while read line; do - set x $line; shift - echo >&2 ">>> $line" - case "$1:$2:$3" in - OK::) ;; - NOTE:KNOCK:bob) shift 3; echo "$*" >knock-addr; break ;; - NOTE:* | TRACE:* | WARN:*) ;; - *) exit 63 ;; - esac - done - ], [ - TRIPECTL -dalice - ])& waiter=$! - - AT_CHECK([TRIPECTL -dbob ADD -knock bob -ephemeral alice INET 127.0.0.1 $alice_from_bob]) - - wait $waiter; waitrc=$? - AT_CHECK([echo $waitrc],, [0[]nl]) +m4_define([WAIT_KNOCK], [ + COPROCESSES([wait-knock], [ + echo "WATCH +n" + while read line; do + set x $line; shift + echo >&2 ">>> $line" + case "$[]1:$[]2:$[]3" in + OK::) ;; + NOTE:KNOCK:$2) shift 3; echo "$[]*" >knock-addr; break ;; + NOTE:* | TRACE:* | WARN:*) ;; + *) exit 63 ;; + esac + done + ], [ + TRIPECTL -d$1 + ])& waiter=$! + + $3 + + wait $waiter; waitrc=$? + AT_CHECK([echo $waitrc],, [0[]nl]) +]) + + WAIT_KNOCK([alice], [bob], [ + AT_CHECK([TRIPECTL -dbob ADD -knock bob -ephemeral alice INET 127.0.0.1 $alice_from_bob]) + ]) AT_CHECK_UNQUOTED([cat knock-addr],, [INET 127.0.0.1 $bob_from_alice[]nl]) AWAIT_KXDONE([alice], [alice], [bob], [bob], [