]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - continuous/gw-setup/run.pl
Improve continuous tests runner
[can-benchmark.git] / continuous / gw-setup / run.pl
index 97f9939a7b1bae0ab0b41fa1fb440c2bd78d9be2..713f0444052d3f76f9b6ad71ff17811e7f613ade 100755 (executable)
@@ -11,29 +11,29 @@ system("cat > $S99; chmod +x $S99") unless -t STDIN;
 # Boot the gateway
 # die("No boot command") if ($#ARGV eq -1);
 my $bootcmd = scalar @ARGV ? "'".join("' '", @ARGV)."'" : "$FindBin::Bin/boot";
-$exp = Expect->spawn($bootcmd);
+$exp = Expect->spawn($bootcmd) or die "Cannot spawn $bootcmd: $!";
 $exp->expect(120,
             'Welcome to Buildroot',
             'UGW started',
             '-re', 't...a...s...k...s... ...s...t...a...r...t...e...d') # RTEMS has bug - it sends 4 characters instead of just one
-    or die "Cannot spawn $bootcmd: $!";
+    or die("Boot failed");
 
 # Measure latencies
-my $latester=<<'EOF';
+my $latester = '
 set -e
-rm -f tmp-stat.txt
 echo "Starting latester"
-sudo /sbin/ifdown eth0
-sudo ~/bin/latester -d can0 -d can1 -d can2 -c 3200 -q --oneattime -n tmp
-r=$?
-sudo /sbin/ifup eth0
-set -e
+rm -f tmp-stat.txt
+sudo /sbin/ifdown --no-scripts eth0
+r=0
+sudo ~/bin/latester -d can0 -d can1 -d can2 -c 3200 -q --oneattime -n tmp || r=$?
+sudo /sbin/ifup --no-scripts eth0
 source tmp-stat.txt
-for i in sent lost enobufs $(seq -f percentile%g 0 10 100); do keyval="$keyval $i=$((i))"; done
+unset keyval
+for i in sent lost enobufs out_of_range_below out_of_range_above $(seq -f percentile%g 0 10 100); do keyval="$keyval $i=$((i))"; done
 echo "! PERF: gw_latency $avg µs $keyval ok"
-test $avg -eq 0 && exit 1
+if [ $(bc -l <<< "$avg == 0") -eq 1 ]; then exit 1; fi
 exit $r
-EOF
+';
 
 my $status = system((qw(ssh -T glab), $latester));
 $exp->close();