- 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])
+ ])