diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-06-25 13:19:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-06-25 13:19:22 -0700 |
commit | e4403d8bd3ccb6bcc3b6569012944d932334f5c4 (patch) | |
tree | 6973c0ae624070e9d96aa4e0d2d21223b48ab60b | |
parent | 01d8ff70f40d8be3c4e2efb245ffc3d013b7fcbf (diff) | |
parent | f8d5ffc2c7c002cebb8842afcf58cbd4cea481b8 (diff) | |
download | git-e4403d8bd3ccb6bcc3b6569012944d932334f5c4.tar.gz git-e4403d8bd3ccb6bcc3b6569012944d932334f5c4.tar.xz |
Merge branch 'sr/tests'
* sr/tests:
Hook up the result aggregation in the test makefile.
A simple script to parse the results from the testcases
Modify test-lib.sh to output stats to t/test-results/*
Conflicts:
t/test-lib.sh
-rw-r--r-- | t/Makefile | 12 | ||||
-rwxr-xr-x | t/aggregate-results.sh | 34 | ||||
-rw-r--r-- | t/test-lib.sh | 15 |
3 files changed, 57 insertions, 4 deletions
diff --git a/t/Makefile b/t/Makefile index c6a60ab16..a778865ae 100644 --- a/t/Makefile +++ b/t/Makefile @@ -14,18 +14,24 @@ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) TSVN = $(wildcard t91[0-9][0-9]-*.sh) -all: $(T) clean +all: pre-clean $(T) aggregate-results clean $(T): @echo "*** $@ ***"; GIT_CONFIG=.git/config '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS) +pre-clean: + $(RM) -r test-results + clean: - $(RM) -r 'trash directory' + $(RM) -r 'trash directory' test-results + +aggregate-results: + ./aggregate-results.sh test-results/t*-* # we can test NO_OPTIMIZE_COMMITS independently of LC_ALL full-svn-test: $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8 -.PHONY: $(T) clean +.PHONY: pre-clean $(T) aggregate-results clean .NOTPARALLEL: diff --git a/t/aggregate-results.sh b/t/aggregate-results.sh new file mode 100755 index 000000000..52e88e304 --- /dev/null +++ b/t/aggregate-results.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +fixed=0 +success=0 +failed=0 +broken=0 +total=0 + +for file +do + while read type value + do + case $type in + '') + continue ;; + fixed) + fixed=$(($fixed + $value)) ;; + success) + success=$(($success + $value)) ;; + failed) + failed=$(($failed + $value)) ;; + broken) + broken=$(( $broken + $value)) ;; + total) + total=$(( $total + $value)) ;; + esac + done <"$file" +done + +printf "%-8s%d\n" fixed $fixed +printf "%-8s%d\n" success $success +printf "%-8s%d\n" failed $failed +printf "%-8s%d\n" broken $broken +printf "%-8s%d\n" total $total diff --git a/t/test-lib.sh b/t/test-lib.sh index f4f35ed43..401011001 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -154,6 +154,7 @@ test_failure=0 test_count=0 test_fixed=0 test_broken=0 +test_success=0 die () { echo >&5 "FATAL: Unexpected exit with code $?" @@ -195,6 +196,7 @@ test_tick () { test_ok_ () { test_count=$(expr "$test_count" + 1) + test_success=$(expr "$test_success" + 1) say_color "" " ok $test_count: $@" } @@ -413,6 +415,16 @@ test_create_repo () { test_done () { trap - exit + test_results_dir="$TEST_DIRECTORY/test-results" + mkdir -p "$test_results_dir" + test_results_path="$test_results_dir/${0%-*}-$$" + + echo "total $test_count" >> $test_results_path + echo "success $test_success" >> $test_results_path + echo "fixed $test_fixed" >> $test_results_path + echo "broken $test_broken" >> $test_results_path + echo "failed $test_failure" >> $test_results_path + echo "" >> $test_results_path if test "$test_fixed" != 0 then @@ -447,7 +459,8 @@ test_done () { # Test the binaries we have just built. The tests are kept in # t/ subdirectory and are run in 'trash directory' subdirectory. -PATH=$(pwd)/..:$PATH +TEST_DIRECTORY=$(pwd) +PATH=$TEST_DIRECTORY/..:$PATH GIT_EXEC_PATH=$(pwd)/.. GIT_TEMPLATE_DIR=$(pwd)/../templates/blt unset GIT_CONFIG |