This adds the test ID (tXXXX) prefix to the test result message of
all shell tests.  This is especially useful when doing a parallel
check run, where it's currently quite hard to identify the actual
failing test case.

Signed-off-by: Jan-Marek Glogowski <glo...@fbihome.de>
---
 t/t0000-basic.sh        | 28 ++++++++++++++--------------
 t/test-lib-functions.sh | 11 +++++++----
 t/test-lib.sh           | 10 ++++++----
 3 Dateien geändert, 27 Zeilen hinzugefügt(+), 22 Zeilen entfernt(-)

diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index ccb5435..1bbf5b8 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -58,7 +58,7 @@ test_expect_failure 'pretend we have a known breakage' '
 test_expect_success 'pretend we have fixed a known breakage (run in sub 
test-lib)' "
        mkdir passing-todo &&
        (cd passing-todo &&
-       cat >passing-todo.sh <<-EOF &&
+       cat >0000t05-passing-todo.sh <<-EOF &&
        #!$SHELL_PATH
 
        test_description='A passing TODO test
@@ -77,14 +77,14 @@ test_expect_success 'pretend we have fixed a known breakage 
(run in sub test-lib
 
        test_done
        EOF
-       chmod +x passing-todo.sh &&
-       ./passing-todo.sh >out 2>err &&
+       chmod +x 0000t05-passing-todo.sh &&
+       ./0000t05-passing-todo.sh >out 2>err &&
        ! test -s err &&
        sed -e 's/^> //' >expect <<-\\EOF &&
-       > ok 1 - pretend we have fixed a known breakage # TODO known breakage
-       > # fixed 1 known breakage(s)
-       > # passed all 1 test(s)
-       > 1..1
+       > 0000t05: ok 1 - pretend we have fixed a known breakage # TODO known 
breakage
+       > 0000t05: # fixed 1 known breakage(s)
+       > 0000t05: # passed all 1 test(s)
+       > 0000t05: 1..1
        EOF
        test_cmp expect out)
 "
@@ -141,7 +141,7 @@ test_expect_success 'tests clean up even on failures' "
        (
        cd failing-cleanup &&
 
-       cat >failing-cleanup.sh <<-EOF &&
+       cat >0000t12-failing-cleanup.sh <<-EOF &&
        #!$SHELL_PATH
 
        test_description='Failing tests with cleanup commands'
@@ -162,23 +162,23 @@ test_expect_success 'tests clean up even on failures' "
 
        EOF
 
-       chmod +x failing-cleanup.sh &&
-       test_must_fail ./failing-cleanup.sh >out 2>err &&
+       chmod +x 0000t12-failing-cleanup.sh &&
+       test_must_fail ./0000t12-failing-cleanup.sh >out 2>err &&
        ! test -s err &&
        ! test -f \"trash directory.failing-cleanup/clean-after-failure\" &&
        sed -e 's/Z$//' -e 's/^> //' >expect <<-\\EOF &&
-       > not ok - 1 tests clean up even after a failure
+       > 0000t12: not ok 1 - tests clean up even after a failure
        > #     Z
        > #     touch clean-after-failure &&
        > #     test_when_finished rm clean-after-failure &&
        > #     (exit 1)
        > #     Z
-       > not ok - 2 failure to clean up causes the test to fail
+       > 0000t12: not ok 2 - failure to clean up causes the test to fail
        > #     Z
        > #     test_when_finished \"(exit 2)\"
        > #     Z
-       > # failed 2 among 2 test(s)
-       > 1..2
+       > 0000t12: # failed 2 among 2 test(s)
+       > 0000t12: 1..2
        EOF
        test_cmp expect out
        )
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 9bc57d2..c81ad7f 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -24,6 +24,9 @@
 #
 # In particular, quoting isn't enough, as the path may contain the same quote
 # that we're using.
+
+TID=$(basename ${0%%-*})
+
 test_set_editor () {
        FAKE_EDITOR="$1"
        export FAKE_EDITOR
@@ -434,7 +437,7 @@ test_external_without_stderr () {
 test_path_is_file () {
        if ! [ -f "$1" ]
        then
-               echo "File $1 doesn't exist. $*"
+               echo "$TID: File $1 doesn't exist. $*"
                false
        fi
 }
@@ -442,7 +445,7 @@ test_path_is_file () {
 test_path_is_dir () {
        if ! [ -d "$1" ]
        then
-               echo "Directory $1 doesn't exist. $*"
+               echo "$TID: Directory $1 doesn't exist. $*"
                false
        fi
 }
@@ -450,7 +453,7 @@ test_path_is_dir () {
 test_path_is_missing () {
        if [ -e "$1" ]
        then
-               echo "Path exists:"
+               echo "$TID: Path exists:"
                ls -ld "$1"
                if [ $# -ge 1 ]; then
                        echo "$*"
@@ -476,7 +479,7 @@ test_line_count () {
                error "bug in the test script: not 3 parameters to 
test_line_count"
        elif ! test $(wc -l <"$3") "$1" "$2"
        then
-               echo "test_line_count: line count for $3 !$1 $2"
+               echo "$TID: test_line_count: line count for $3 !$1 $2"
                cat "$3"
                return 1
        fi
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 78c4286..6fccbe9 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -31,6 +31,8 @@ done,*)
        ;;
 esac
 
+TID=$(basename ${0%%-*})
+
 # Keep the original TERM for say_color
 ORIGINAL_TERM=$TERM
 
@@ -185,7 +187,7 @@ if test -n "$color"; then
                        *) test -n "$quiet" && return;;
                esac
                shift
-               printf "%s" "$*"
+               printf "$TID: %s" "$*"
                tput sgr0
                echo
                )
@@ -194,12 +196,12 @@ else
        say_color() {
                test -z "$1" && test -n "$quiet" && return
                shift
-               echo "$*"
+               echo "$TID: $*"
        }
 fi
 
 error () {
-       say_color error "error: $*"
+       say_color error "$TID: error: $*"
        GIT_EXIT_OK=t
        exit 1
 }
@@ -262,7 +264,7 @@ test_ok_ () {
 
 test_failure_ () {
        test_failure=$(($test_failure + 1))
-       say_color error "not ok - $test_count $1"
+       say_color error "not ok $test_count - $1"
        shift
        echo "$@" | sed -e 's/^/#       /'
        test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; }
-- 
1.7.11.5

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to