chiark / gitweb /
debian/source/format: Apparently you're meant to have one of these now.
[tripe] / server / tests.at
index df77d7184da5c1eb539595f7fa1e402f8c1b6da9..f47aae48c20284309db045d59eedd12d783825a7 100644 (file)
@@ -58,7 +58,7 @@ m4_define([WITH_STRACE],
     mkdir -p strace-hack.$1/
     (ulimit -c hard >/dev/null 2>&1
      sh -c 'cd strace-hack.$1; exec "$[]@"' - \
-       strace -f -o../$1.trace \
+       strace -ff -tt -v -s1024 -o../$1.trace \
        sh -c 'cd ..; exec "$[]@"' - \
        $2)
     ;;
@@ -229,11 +229,12 @@ m4_define([COMMS_SLIP], [
 m4_define([AWAIT_KXDONE], [
 
   ## Ignore some reports caused by races.
-  for d in $1 $3; do
+  for i in $1!$4 $3!$2; do
+    d=${i%!*} o=${i#*!}
     TRIPECTL -d$d WARN test PUSH
-    TRIPECTL -d$d WARN test IGNORE WARN KX $2 incorrect cookie
-    TRIPECTL -d$d WARN test IGNORE WARN KX $2 unexpected pre-challenge
-    TRIPECTL -d$d WARN test IGNORE WARN KX $2 unexpected challenge
+    TRIPECTL -d$d WARN test IGNORE WARN KX $o incorrect cookie
+    TRIPECTL -d$d WARN test IGNORE WARN KX $o unexpected pre-challenge
+    TRIPECTL -d$d WARN test IGNORE WARN KX $o unexpected challenge
   done
 
   ## Watch for the key-exchange completion announcement in the background.
@@ -245,7 +246,7 @@ m4_define([AWAIT_KXDONE], [
       case "$[]1:$[]2:$[]3" in
        OK::) ;;
        NOTE:KXDONE:$4) break ;;
-       NOTE:*) ;;
+       NOTE:* | TRACE:* | WARN:*) ;;
        *) exit 63 ;;
       esac
     done
@@ -472,12 +473,16 @@ WITH_2TRIPES([alice], [bob], [-nslip], [-talice], [-tbob], [
 
   ## Set up the evil proxy.
   alicemitm=24516 bobmitm=14016
-  MITM -kalice/keyring.pub >mitm.out 2>mitm.err \
-    peer:alice:$alicemitm:127.0.0.1:$(cat alice/port) \
-    peer:bob:$bobmitm:127.0.0.1:$(cat bob/port) \
-    filt:drop:5 filt:send& mitmpid=$!
-  strace -omitm.trace -p$mitmpid& mitmtrace=$!
-  trap 'kill $mitmpid $mitmtrace; exit 127' EXIT INT QUIT TERM HUP
+  mknod pipe-mitmpid p
+  WITH_STRACE([mitm],
+             [sh -c 'echo $$ >pipe-mitmpid; exec "$@"' - \
+              MITM -kalice/keyring.pub >mitm.out 2>mitm.err \
+                peer:alice:$alicemitm:127.0.0.1:$(cat alice/port) \
+                peer:bob:$bobmitm:127.0.0.1:$(cat bob/port) \
+                filt:drop:5 filt:send])&
+  read mitmpid <pipe-mitmpid
+  trap 'kill $mitmpid; exit 127' EXIT INT QUIT TERM HUP
+  exec 3>&-
 
   ## Try to establish keys anyway.
   AWAIT_KXDONE([alice], [alice], [bob], [bob], [
@@ -491,8 +496,6 @@ WITH_2TRIPES([alice], [bob], [-nslip], [-talice], [-tbob], [
 
   ## Tear down the MITM proxy.
   kill $mitmpid
-  wait $mitmpid
-  wait $mitmtrace
 ])
 
 AT_CLEANUP