+
+perl -ne '
+sub check_block {
+ return unless ($last_block || $last_bsr_block);
+ $nb = $last_block - $last_bsr_block;
+ if ($nb > 65000) {
+ print "ERROR: read too many bytes $nb\n";
+ }
+}
+sub print_stat {
+ if ($last_bsr_addr) {
+ $last_bsr_block = $last_bsr_addr & 0xFFFFFFFF;
+ }
+ print "$last_job\nlast_bsr_block=$last_bsr_block last_block_read=$last_block\n";
+ check_block();
+ $last_bsr_block = $last_block=0;
+}
+
+if (/dircmd.c.+(JobId=\d+ job=\S+) .+client_name=.+-fd/) {
+ if ($last_job) {
+ print_stat();
+ }
+}
+
+$last_job=$1 if /dircmd.c.+(JobId=\d+ job=\S+)/;
+$last_bsr_addr=$1 if /fd_cmds.c:.+VolAddr=\d+-(\d+)/;
+$last_bsr_block=$1 if /fd_cmds.c:.+VolBlock=\d+-(\d+)/;
+$last_block=$1 if /read_record.c.+file:block=\d+:(\d+)/;
+END {
+ print_stat();
+}' working/*-sd.trace > tmp/result
+
+grep ERROR tmp/result > /dev/null
+if [ $? -eq 0 ]; then
+ rstat=2
+ cat tmp/result
+fi
+