X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=build%2Ftest-commit-msg.sh;h=facd9f3c547d25e5d7c477709e73d438c6c63b74;hb=c04dddd71d140c61f654681c1993f5bb1ded4f48;hp=7bb885f28f877b228dd52df79a0db6c99c8c1b69;hpb=3f5e72e4cff0d5238fa3ef7a7acf27c86ea973e8;p=fs%2Flustre-release.git diff --git a/build/test-commit-msg.sh b/build/test-commit-msg.sh index 7bb885f..facd9f3 100755 --- a/build/test-commit-msg.sh +++ b/build/test-commit-msg.sh @@ -1,17 +1,46 @@ #!/bin/bash -TEMPFILE=commit_test -\ls -1 $* | egrep -v "\.orig|\.20" | while read FILE; do - cp $FILE $TEMPFILE - sh ./build/commit-msg $TEMPFILE 2>&1 | grep -q "^error:" - OK=$? - - EXPECT=$(echo $FILE | cut -d. -f2) - case $OK$EXPECT in - 1ok*) echo "$FILE: PASS (was allowed)" ;; - 0ok*) echo "$FILE: FAIL (not allowed)" ;; - 0*) echo "$FILE: PASS (found error)";; - *) echo "$FILE: FAIL (no error)" ;; - esac + +program=$0 +progdir=$(\cd $(dirname $0) >/dev/null && pwd) + +die() { + exec 1>&2 + echo "$program fatal error: $*" + exit 1 +} + +TEMPFILE=$(mktemp ${TMPDIR:-.}/commit-XXXXXX) +test -f "$TEMPFILE" || die "mktemp fails" +trap "rm -f $TEMPFILE COMMIT*" EXIT + +test $# -eq 0 && set -- ${progdir}/commit.* + +export FAIL="" +readonly report_fmt='%-20s %s\n' +for f; do + case "$f" in + ( *.orig | *.rej ) continue ;; + esac + + cp $f $TEMPFILE + results=$(exec 2>&1 ${SHELL:-sh} $progdir/commit-msg $TEMPFILE) + case $'\n'"$results" in + ( *$'\nerror:'* ) OK=0 ;; + ( * ) OK=1 ;; + esac + + f=$(basename $f) + case $OK${f#*commit.} in + 1ok*) printf "$report_fmt" $f: "PASS (was allowed)" ;; + 0ok*) printf "$report_fmt" $f: "FAIL (not allowed)"; FAIL="$FAIL $f";; + 0*) printf "$report_fmt" $f: "PASS (found error)" ;; + *) printf "$report_fmt" $f: "FAIL (no error)" ; FAIL="$FAIL $f";; + esac done -rm -f $TEMPFILE +if [ -n "$FAIL" ]; then + echo -e "\nerror: commit-msg test(s) failed!" 1>&2 + echo " $FAIL" +fi + +rm -f $TEMPFILE $TEMPFILE.*