]> Cypherpunks repositories - gostls13.git/commitdiff
make sure errchk only prints BUG once.
authorRuss Cox <rsc@golang.org>
Thu, 30 Oct 2008 19:43:32 +0000 (12:43 -0700)
committerRuss Cox <rsc@golang.org>
Thu, 30 Oct 2008 19:43:32 +0000 (12:43 -0700)
using a variable is not sufficient, because
sometimes bug() is called from a subshell.

R=iant
DELTA=7  (2 added, 1 deleted, 4 changed)
OCL=18092
CL=18145

test/errchk

index a8476a62589bf662c6b34f2fefb4cae5fde0d53a..2b602c3c7f6e1d8b75913761bf6574394e54cebb 100755 (executable)
@@ -29,9 +29,11 @@ TMPERR=/tmp/errchk-err-$$
 TMPALL=/tmp/errchk-all-$$
 TMPTMP=/tmp/errchk-tmp-$$
 TMPSTAT=/tmp/errchk-stat-$$
-rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPSTAT
+TMPBUG=/tmp/errchk-bug-$$
 
-trap "rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPSTAT" 0 1 2 3 14 15
+rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPSTAT $TMPBUG
+
+trap "rm -f $TMPOUT $TMPERR $TMPALL $TMPTMP $TMPSTAT $TMPBUG" 0 1 2 3 14 15
 
 if $* >$TMPOUT 2>$TMPERR; then
   echo 1>&2 "BUG: errchk: command succeeded unexpectedly: " "$@"
@@ -43,12 +45,11 @@ fi
 
 cat $TMPOUT $TMPERR | grep -v '^       ' > $TMPALL
 
-didbug=false
 bug() {
-  if ! $didbug
+  if ! test -f $TMPBUG
   then
     echo 1>&2 -n BUG: ''
-    didbug=true
+    echo >$TMPBUG
   fi
 }