From 3174806cc9da20eb3ad65513e8726d3dba1abfb5 Mon Sep 17 00:00:00 2001
From: Rick Carback <rick@privategrity.com>
Date: Sun, 29 Apr 2018 18:57:30 +0000
Subject: [PATCH] Add channel messages to client gold output and enable a
 message sent from a channel to all of the clients

---
 basice2e/clients.goldoutput/client12.out |  4 +-
 basice2e/clients.goldoutput/client23.out |  4 +-
 basice2e/clients.goldoutput/client34.out |  4 +-
 basice2e/clients.goldoutput/client41.out |  4 +-
 basice2e/clients.goldoutput/client5.out  |  2 +
 basice2e/run.sh                          | 52 +++++++++++++-----------
 6 files changed, 39 insertions(+), 31 deletions(-)
 create mode 100644 basice2e/clients.goldoutput/client5.out

diff --git a/basice2e/clients.goldoutput/client12.out b/basice2e/clients.goldoutput/client12.out
index 59c38dc..a95df9f 100755
--- a/basice2e/clients.goldoutput/client12.out
+++ b/basice2e/clients.goldoutput/client12.out
@@ -1,4 +1,4 @@
-Sending Message to 2, Jim: Hello, 2
+Message from 31, #general Received: Channel, Hello
 Message from 4, Rick Received: Hello, 1
 Sending Message to 2, Jim: Hello, 2
-Message from 4, Rick Received: Hello, 1
+Sending Message to 2, Jim: Hello, 2
diff --git a/basice2e/clients.goldoutput/client23.out b/basice2e/clients.goldoutput/client23.out
index f978dc8..8ae4e7c 100755
--- a/basice2e/clients.goldoutput/client23.out
+++ b/basice2e/clients.goldoutput/client23.out
@@ -1,4 +1,4 @@
-Sending Message to 3, Ben: Hello, 3
 Message from 1, David Received: Hello, 2
+Message from 31, #general Received: Channel, Hello
+Sending Message to 3, Ben: Hello, 3
 Sending Message to 3, Ben: Hello, 3
-Message from 1, David Received: Hello, 2
diff --git a/basice2e/clients.goldoutput/client34.out b/basice2e/clients.goldoutput/client34.out
index 535a51f..be205e5 100755
--- a/basice2e/clients.goldoutput/client34.out
+++ b/basice2e/clients.goldoutput/client34.out
@@ -1,4 +1,4 @@
-Sending Message to 4, Rick: Hello, 4
 Message from 2, Jim Received: Hello, 3
+Message from 31, #general Received: Channel, Hello
+Sending Message to 4, Rick: Hello, 4
 Sending Message to 4, Rick: Hello, 4
-Message from 2, Jim Received: Hello, 3
diff --git a/basice2e/clients.goldoutput/client41.out b/basice2e/clients.goldoutput/client41.out
index df9a4f6..cbf2212 100755
--- a/basice2e/clients.goldoutput/client41.out
+++ b/basice2e/clients.goldoutput/client41.out
@@ -1,4 +1,4 @@
-Sending Message to 1, David: Hello, 1
+Message from 31, #general Received: Channel, Hello
 Message from 3, Ben Received: Hello, 4
 Sending Message to 1, David: Hello, 1
-Message from 3, Ben Received: Hello, 4
+Sending Message to 1, David: Hello, 1
diff --git a/basice2e/clients.goldoutput/client5.out b/basice2e/clients.goldoutput/client5.out
new file mode 100644
index 0000000..7757704
--- /dev/null
+++ b/basice2e/clients.goldoutput/client5.out
@@ -0,0 +1,2 @@
+Message from 31, #general Received: Channel, Hello
+Sending Message to 31, #general: Channel, Hello
diff --git a/basice2e/run.sh b/basice2e/run.sh
index 016741c..373b710 100755
--- a/basice2e/run.sh
+++ b/basice2e/run.sh
@@ -25,8 +25,8 @@ do
         sleep 15 # This will force a CDE timeout
     fi
     $SERVERCMD > $SERVERLOGS/server-$SERVERID.console 2>&1 &
-    RETVAL=$!
-    echo "$SERVERCMD -- $RETVAL"
+    PIDVAL=$!
+    echo "$SERVERCMD -- $PIDVAL"
 done
 
 jobs -p > results/serverpids
@@ -47,7 +47,7 @@ finish() {
 trap finish EXIT
 trap finish INT
 
-sleep 20 # FIXME: We should not need this, but the servers don't respond quickly
+sleep 45 # FIXME: We should not need this, but the servers don't respond quickly
          #        enough on boot right now.
 
 export LASTNODE="localhost:50004"
@@ -59,29 +59,24 @@ export NICK4="Rick"
 runclients() {
     echo "Starting clients..."
     CTR=0
+
     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
             nid=$((($cid % 4) + 1))
             eval NICK=\${NICK${cid}}
-            # Send a channel message
-            # CLIENTCMD="timeout 10s ../bin/client -f blob$cid$nid --numnodes 5 -s $LASTNODE -i $cid -d 35 -m \"Channel, $nid\" --nick $NICK"
-            # eval $CLIENTCMD >> $CLIENTOUT/client$cid$nid.out 2>&1 &
-            # RETVAL=$!
-            # eval CLIENTSCH${CTR}=$RETVAL
-            # echo "$CLIENTCMD -- $RETVAL"
-
             # Send a regular message
-            CLIENTCMD="timeout 60s ../bin/client -f blob$cid$nid --numnodes 5 -s $LASTNODE -i $cid -d $nid -m \"Hello, $nid\" --nick $NICK --noratchet"
+            CLIENTCMD="timeout 60s ../bin/client -f blob$cid --numnodes 5 -s $LASTNODE -i $cid -d $nid -m \"Hello, $nid\" --nick $NICK --noratchet"
             eval $CLIENTCMD >> $CLIENTOUT/client$cid$nid.out 2>&1 &
-            RETVAL=$!
-            eval CLIENTS${CTR}=$RETVAL
-            echo "$CLIENTCMD -- $RETVAL"
+            PIDVAL=$!
+            eval CLIENTS${CTR}=$PIDVAL
+            echo "$CLIENTCMD -- $PIDVAL"
             CTR=$(($CTR + 1))
         done
     done
@@ -95,16 +90,25 @@ runclients() {
 }
 
 # Start a channelbot server
-../bin/client channelbot -v -i 31 --nick "#general" --numnodes 5 -s $LASTNODE \
-              -f blobchannel --noratchet \
-              2>&1 > $CHANNELOUT &
-echo $! >> results/serverpids
+CHANNELCMD="../bin/client channelbot -v -i 31 --nick \"#general\" --numnodes 5 -s $LASTNODE  -f blobchannel --noratchet"
+eval $CHANNELCMD >> $CHANNELOUT 2>&1 &
+PIDVAL=$!
+echo "$CHANNELCMD -- $PIDVAL"
+echo $PIDVAL >> results/serverpids
 
 # Start a dummy client
-../bin/client -i 35 -d 35 -s $LASTNODE --numnodes 5 -m "dummy" --nick "dummy" \
-              --dummyfrequency 0.5 --noratchet \
-              -f blobdummy 2>&1 > $DUMMYOUT &
-echo $! >> results/serverpids
+DUMMYCMD="../bin/client -i 35 -d 35 -s $LASTNODE --numnodes 5 -m \"dummy\" --nick \"dummy\" --dummyfrequency 0.5 --noratchet -f blobdummy"
+eval $DUMMYCMD >> $DUMMYOUT 2>&1 &
+PIDVAL=$!
+echo "$DUMMYCMD -- $PIDVAL"
+echo $PIDVAL >> results/serverpids
+
+# Send a channel message that all clients will receive
+CLIENTCMD="timeout 60s ../bin/client -f blob5 --numnodes 5 -s $LASTNODE -i 5 -d 31 -m \"Channel, Hello\" --nick Spencer --noratchet"
+eval $CLIENTCMD >> $CLIENTOUT/client5.out 2>&1 &
+PIDVAL=$!
+echo "$CLIENTCMD -- $PIDVAL"
+wait $PIDVAL
 
 echo "RUNNING CLIENTS..."
 runclients
@@ -115,7 +119,9 @@ runclients
 for F in $(find results/clients -type f)
 do
     cat $F | grep -v "[Rr]atcheting" > $F.tmp
-    mv $F.tmp $F
+    # Sort the messages, as we don't care if they arrive out of order
+    sort $F.tmp > $F
+    rm $F.tmp
 done
 
 
-- 
GitLab