From 1f8ce25cfafca2e6bd9b148f68f763c43c46a06e Mon Sep 17 00:00:00 2001
From: Rick Carback <rick@privategrity.com>
Date: Tue, 6 Mar 2018 22:50:57 +0000
Subject: [PATCH] final touches for initial integration test

---
 basice2e/clients.goldoutput/client12.out |  2 ++
 basice2e/clients.goldoutput/client23.out |  2 ++
 basice2e/clients.goldoutput/client34.out |  2 ++
 basice2e/clients.goldoutput/client41.out |  2 ++
 basice2e/run.sh                          | 34 +++++++++++++++++-------
 5 files changed, 32 insertions(+), 10 deletions(-)
 create mode 100644 basice2e/clients.goldoutput/client12.out
 create mode 100644 basice2e/clients.goldoutput/client23.out
 create mode 100644 basice2e/clients.goldoutput/client34.out
 create mode 100644 basice2e/clients.goldoutput/client41.out

diff --git a/basice2e/clients.goldoutput/client12.out b/basice2e/clients.goldoutput/client12.out
new file mode 100644
index 0000000..7684960
--- /dev/null
+++ b/basice2e/clients.goldoutput/client12.out
@@ -0,0 +1,2 @@
+Sending Message to 2: Hello, 2
+Message Received: Hello, 1
diff --git a/basice2e/clients.goldoutput/client23.out b/basice2e/clients.goldoutput/client23.out
new file mode 100644
index 0000000..9e229cb
--- /dev/null
+++ b/basice2e/clients.goldoutput/client23.out
@@ -0,0 +1,2 @@
+Sending Message to 3: Hello, 3
+Message Received: Hello, 2
diff --git a/basice2e/clients.goldoutput/client34.out b/basice2e/clients.goldoutput/client34.out
new file mode 100644
index 0000000..ff93143
--- /dev/null
+++ b/basice2e/clients.goldoutput/client34.out
@@ -0,0 +1,2 @@
+Sending Message to 4: Hello, 4
+Message Received: Hello, 3
diff --git a/basice2e/clients.goldoutput/client41.out b/basice2e/clients.goldoutput/client41.out
new file mode 100644
index 0000000..2cc14f8
--- /dev/null
+++ b/basice2e/clients.goldoutput/client41.out
@@ -0,0 +1,2 @@
+Sending Message to 1: Hello, 1
+Message Received: Hello, 4
diff --git a/basice2e/run.sh b/basice2e/run.sh
index 2b5a34f..4690988 100755
--- a/basice2e/run.sh
+++ b/basice2e/run.sh
@@ -4,6 +4,8 @@
 
 set -e
 
+rm -fr results || true
+
 SERVERLOGS=results/servers
 CLIENTOUT=results/clients
 
@@ -16,17 +18,23 @@ for SERVERID in $(seq 1 5)
 do
     IDX=$(($SERVERID - 1))
     SERVERCMD="../bin/server -v -i $IDX --config server-$SERVERID.yaml"
-    eval $SERVERCMD > $SERVERLOGS/server-$SERVERID.console 2>&1 &
-    echo "$SERVERCMD -- $!"
+    $SERVERCMD > $SERVERLOGS/server-$SERVERID.console 2>&1 &
+    RETVAL=$!
+    echo "$SERVERCMD -- $RETVAL"
 done
 
+jobs -p > results/serverpids
+
 finish() {
     echo "STOPPING SERVERS..."
-    for job in $(jobs -p)
+    # NOTE: jobs -p doesn't work in a signal handler
+    for job in $(cat results/serverpids)
     do
+        echo "KILLING $job"
         kill $job || true
     done
-    tail results/*
+    tail $SERVERLOGS/*
+    tail $CLIENTOUT/*
 }
 
 trap finish EXIT
@@ -41,25 +49,31 @@ LASTNODE="localhost:50004"
 echo "STARTING CLIENTS..."
 CTR=0
 
-for cid in 1 2 3 4; do
+for cid in $(seq 1 4)
+do
     # TODO: Change the recipients to send multiple messages. We can't
     #       run multiple clients with the same user id so we need
     #       updates to make that work.
     #     for nid in 1 2 3 4; do
-    for nid in 1; do
+    for nid in 1
+    do
         nid=$((($cid % 4) + 1))
-        ../bin/client --numnodes 5 -s $LASTNODE -i $cid -d $nid -m "Hello, $nid" > results/client$cid$nid.out 2>&1 &
+        CLIENTCMD="../bin/client --numnodes 5 -s $LASTNODE -i $cid -d $nid -m \"Hello, $nid\""
+        eval $CLIENTCMD > $CLIENTOUT/client$cid$nid.out 2>&1 &
         RETVAL=$!
-        echo "../bin/client --numnodes 5 -s $LASTNODE -i $cid -d $nid -m \"Hello, $nid\" -- $RETVAL"
         eval CLIENTS${CTR}=$RETVAL
+        echo "$CLIENTCMD -- $RETVAL"
         CTR=$(($CTR + 1))
     done
 done
 
 echo "WAITING FOR $CTR CLIENTS TO EXIT..."
-for i in $(seq 0 $(($CTR - 1))); do
+for i in $(seq 0 $(($CTR - 1)))
+do
     eval echo "Waiting on \${CLIENTS${i}} ..."
     eval wait \${CLIENTS${i}}
 done
 
-diff -ruN 
+diff -ruN clients.goldoutput $CLIENTOUT
+
+echo "SUCCESS!"
-- 
GitLab