]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
xfstests: make length of diff output configurable
authorDavid Sterba <dsterba@suse.cz>
Wed, 23 Jan 2013 11:14:33 +0000 (11:14 +0000)
committerRich Johnston <rjohnston@sgi.com>
Tue, 5 Mar 2013 20:42:36 +0000 (14:42 -0600)
In commit 11c1d79414e2571 "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>
README
check

diff --git a/README b/README
index d81ede9f94be85b801f8797a7b8470edf39b25ad..b70f75d534e493a148d1681e0407daaffded14d8 100644 (file)
--- a/README
+++ b/README
@@ -63,6 +63,8 @@ Preparing system for tests (IRIX and Linux):
              - if TEST_LOGDEV and/or TEST_RTDEV, these will always be used.
              - if SCRATCH_LOGDEV and/or SCRATCH_RTDEV, the USE_EXTERNAL
                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
           these variables based on the hostname of your test
           machine
diff --git a/check b/check
index 75addb54cc2db44264d3aa16426fb9af370f77cc..c20179c4967ea686fc88bf12427cbcb58ed4cd03 100755 (executable)
--- a/check
+++ b/check
@@ -30,6 +30,8 @@ notrun=""
 interrupt=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
 timestamp=${TIMESTAMP:=false}
@@ -287,7 +289,12 @@ do
                else
                    echo " - output mismatch (see $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/'
                    echo "     ..."
                    echo "     (Run '$diff $seq.out $seq.out.bad' to see the" \