xfstests: make length of diff output configurable

In commit 11c1d79414 "xfstests: Change the diff output of failed
tests", the diff output of a failed test was hardcoded to 10 lines to
avoid overly long output and user can get the full output by manually
running the diff. However this is not always possible and convenient,
eg. in repeated automated tests where the required information is lost
after the test round finished. Then the caputred logs do not contain
enough informatin for analysis.

Introduce the DIFF_LENGTH env variable to tune the diff size, keeping it
10 as deafult and 0 to disable the limit.

Signed-off-by: David Sterba <dsterba@suse.cz>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
This commit is contained in:
David Sterba
2013-01-23 11:14:33 +00:00
committed by Rich Johnston
parent 24fef70ef3
commit 6f000a96dc
2 changed files with 10 additions and 1 deletions
+2
View File
@@ -63,6 +63,8 @@ Preparing system for tests (IRIX and Linux):
- if TEST_LOGDEV and/or TEST_RTDEV, these will always be used. - if TEST_LOGDEV and/or TEST_RTDEV, these will always be used.
- if SCRATCH_LOGDEV and/or SCRATCH_RTDEV, the USE_EXTERNAL - if SCRATCH_LOGDEV and/or SCRATCH_RTDEV, the USE_EXTERNAL
environment variable set to "yes" will enable their use. environment variable set to "yes" will enable their use.
- setenv DIFF_LENGTH "number of diff lines to print from a failed test",
by default 10, set to 0 to print the full diff
- or add a case to the switch in common.config assigning - or add a case to the switch in common.config assigning
these variables based on the hostname of your test these variables based on the hostname of your test
machine machine
+8 -1
View File
@@ -30,6 +30,8 @@ notrun=""
interrupt=true interrupt=true
export QA_CHECK_FS=${QA_CHECK_FS:=true} export QA_CHECK_FS=${QA_CHECK_FS:=true}
# number of diff lines from a failed test, 0 for whole output
export DIFF_LENGTH=${DIFF_LENGTH:=10}
# by default don't output timestamps # by default don't output timestamps
timestamp=${TIMESTAMP:=false} timestamp=${TIMESTAMP:=false}
@@ -287,7 +289,12 @@ do
else else
echo " - output mismatch (see $seq.out.bad)" echo " - output mismatch (see $seq.out.bad)"
mv $tmp.out $seq.out.bad mv $tmp.out $seq.out.bad
$diff $seq.out $seq.out.bad | head -n 10 | \ $diff $seq.out $seq.out.bad | {
if test "$DIFF_LENGTH" -le 0; then
cat
else
head -n "$DIFF_LENGTH"
fi; } | \
sed -e 's/^\(.\)/ \1/' sed -e 's/^\(.\)/ \1/'
echo " ..." echo " ..."
echo " (Run '$diff $seq.out $seq.out.bad' to see the" \ echo " (Run '$diff $seq.out $seq.out.bad' to see the" \