diff --git a/smokeinfra/noerrors.txt b/smokeinfra/noerrors.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/smokeinfra/run.sh b/smokeinfra/run.sh
index f3cb3f7304acedf4171adba000e65fdda596cb6e..77d5c546827f064159f477817a50617998ee7d22 100755
--- a/smokeinfra/run.sh
+++ b/smokeinfra/run.sh
@@ -17,21 +17,19 @@ echo "STARTING SERVERS..."
 for SERVERID in $(seq 3 -1 1)
 do
     IDX=$(($SERVERID - 1))
-    SERVERCMD="../bin/server -v -i $IDX --roundBufferTimeout 300s --config server-$SERVERID.yaml --noTLS"
+    SERVERCMD="../bin/server -v -i $IDX --roundBufferTimeout 300s --config server-$SERVERID.yaml --noTLS --disablePermissioning"
     $SERVERCMD > $SERVERLOGS/server-$SERVERID.console 2>&1 &
     PIDVAL=$!
     echo "$SERVERCMD -- $PIDVAL"
 done
 
-sleep 5 # Give servers some time to boot
-
 echo "STARTING GATEWAYS..."
 
 # Start gateways
 for GWID in $(seq 3 -1 1)
 do
     IDX=$(($GWID - 1))
-    GATEWAYCMD="../bin/gateway -v -i $IDX --config gateway-$GWID.yaml --noTLS"
+    GATEWAYCMD="../bin/gateway -v -i $IDX --config gateway-$GWID.yaml --noTLS --disablePermissioning"
     $GATEWAYCMD > $GATEWAYLOGS/gateway-$GWID.console 2>&1 &
     PIDVAL=$!
     echo "$GATEWAYCMD -- $PIDVAL"
@@ -47,13 +45,12 @@ finish() {
         echo "KILLING $job"
         kill $job || true
     done
-    tail $SERVERLOGS/*.console
 }
 
 trap finish EXIT
 trap finish INT
 
-sleep 60
+sleep 5
 
 echo "STOPPING SERVERS AND GATEWAYS..."
 # NOTE: jobs -p doesn't work in a signal handler
@@ -62,4 +59,27 @@ do
     echo "Stopping $job"
     kill $job
 done
+
+echo "CHECKING OUTPUT FOR ERRORS"
+set +x
+
+cat $SERVERLOGS/server-*.log | grep "ERROR" | grep -v "context" | grep -v "metrics" | grep -v "database" > results/server-errors.txt || true
+cat $SERVERLOGS/server-*.log | grep "FATAL" |  grep -v "context" | grep -v "database" >> results/server-errors.txt || true
+diff -ruN results/server-errors.txt noerrors.txt
+
+cat $GATEWAYLOGS/*.log | grep "ERROR" | grep -v "certificate" | grep -v "context" | grep -v "database" | grep -v "Failed to read key" | grep -v "$IGNOREMSG" > results/gateway-errors.txt || true
+cat $GATEWAYLOGS/*.log | grep "FATAL" | grep -v "context" | grep -v "database" >> results/gateway-errors.txt || true
+diff -ruN results/gateway-errors.txt noerrors.txt
+
+echo "NO OUTPUT ERRORS"
+
+echo "CHECKING THAT AT LEAST 2 ROUNDS RAN"
+cat results/server-3.log | grep "RID 1 ReceiveFinishRealtime END" > rid.txt || true
+if [ ! -s rid.txt ]; then
+    echo "FAILURE!"
+    exit 42
+fi
+
+echo "SUCCESS!"
+
 tail $SERVERLOGS/*.console