diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dd28cdd05cf6eb21ffb915d5c7a880a1b75135b0..f8c1277c231bdad926ce9091d14d604e7e49e28b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,3 +80,5 @@ benchmark: when: always paths: - bin/ + only: + - benchmark diff --git a/basice2e/clients.goldoutput/client12.out b/basice2e/clients.goldoutput/client12.out index 59c38dccd856485165cb36684b4098884610ad45..71f22f1d1417a0d2d8fd5a08ab2e3916b791551b 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 4, Rick Received: Hello, 1 +Message from 31, #General Received: Channel, Hello Sending Message to 2, Jim: Hello, 2 Message from 4, Rick Received: Hello, 1 diff --git a/basice2e/clients.goldoutput/client23.out b/basice2e/clients.goldoutput/client23.out index f978dc80eb084c2bd1e13615b6ec08783c28639d..97b0607064970ed2963871daac286d5bc8ef5025 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 Message from 1, David Received: Hello, 2 diff --git a/basice2e/clients.goldoutput/client34.out b/basice2e/clients.goldoutput/client34.out index 535a51fe4ef03ed501f55987dcf6ed99f7d0362e..ec71365c33217483b8a17abfeb273717bcc318ca 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 Message from 2, Jim Received: Hello, 3 diff --git a/basice2e/clients.goldoutput/client41.out b/basice2e/clients.goldoutput/client41.out index df9a4f6bb47388814270f1889e198ecaec6c75fc..e1b61091593e16f619e7fa0531a498bc069d4347 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 3, Ben Received: Hello, 4 +Message from 31, #General Received: Channel, Hello Sending Message to 1, David: Hello, 1 Message from 3, Ben Received: Hello, 4 diff --git a/basice2e/clients.goldoutput/client5.out b/basice2e/clients.goldoutput/client5.out new file mode 100644 index 0000000000000000000000000000000000000000..6bd764af7e86cf2a600e93d6a80213ef2a07b46b --- /dev/null +++ b/basice2e/clients.goldoutput/client5.out @@ -0,0 +1,2 @@ +Sending Message to 31, #General: Channel, Hello +Message from 31, #General Received: Channel, Hello diff --git a/basice2e/run.sh b/basice2e/run.sh index 1dfded885d6010e8ab21d07cb6534cc093d3c120..2f5f514693192607e4fd557cc0e6056399656f78 100755 --- a/basice2e/run.sh +++ b/basice2e/run.sh @@ -9,22 +9,24 @@ rm blob* || true SERVERLOGS=results/servers CLIENTOUT=results/clients +CHANNELOUT=results/channelbot.console +DUMMYOUT=results/dummy.console mkdir -p $SERVERLOGS mkdir -p $CLIENTOUT echo "STARTING SERVERS..." -for SERVERID in $(seq 1 5) +for SERVERID in $(seq 5 -1 1) do IDX=$(($SERVERID - 1)) - SERVERCMD="../bin/server -v -i $IDX --config server-$SERVERID.yaml" + SERVERCMD="../bin/server -v -i $IDX --config server-$SERVERID.yaml --noratchet" if [ $SERVERID -eq 4 ]; then 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 @@ -45,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" @@ -57,21 +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}} - CLIENTCMD="timeout 10s ../bin/client -f blob$cid$nid --numnodes 5 -s $LASTNODE -i $cid -d $nid -m \"Hello, $nid\" --nick $NICK" + # Send a regular message + 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 @@ -84,15 +89,52 @@ runclients() { done } +# Start a channelbot server +CHANNELCMD="../bin/client channelbot -v -i 31 --nick \"#General\" --numnodes 5 -s $LASTNODE -f blobchannel --noratchet" +eval $CHANNELCMD >> $CHANNELOUT 2>&1 & +PIDVAL=$! +echo $PIDVAL >> results/serverpids +echo "$CHANNELCMD -- $PIDVAL" + +# Start a dummy client +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 $PIDVAL >> results/serverpids +echo "$DUMMYCMD -- $PIDVAL" + +# 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 + +sleep 10 # Spend some time waiting for the channel bot to send messages + echo "RUNNING CLIENTS..." runclients echo "RUNNING CLIENTS (2nd time)..." runclients +# HACK HACK HACK: Remove the ratchet warning from client output +for F in $(find results/clients -type f) +do + cat $F | grep -v "[Rr]atcheting" > $F.tmp + mv $F.tmp $F +done + diff -ruN clients.goldoutput $CLIENTOUT cat $SERVERLOGS/*.log | grep "ERROR" > results/server-errors.txt || true cat $SERVERLOGS/*.log | grep "FATAL" >> results/server-errors.txt || true diff -ruN results/server-errors.txt noerrors.txt +cat $CHANNELOUT | grep "ERROR" > results/channel-errors.txt || true +cat $CHANNELOUT | grep "FATAL" >> results/channel-errors.txt || true +diff -ruN results/channel-errors.txt noerrors.txt +cat $DUMMYOUT | grep "ERROR" > results/dummy-errors.txt || true +cat $DUMMYOUT | grep "FATAL" >> results/dummy-errors.txt || true +diff -ruN results/dummy-errors.txt noerrors.txt + echo "SUCCESS!"