Browse Source

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
maint
Junio C Hamano 17 years ago
parent
commit
e4403d8bd3
  1. 12
      t/Makefile
  2. 34
      t/aggregate-results.sh
  3. 15
      t/test-lib.sh

12
t/Makefile

@ -14,18 +14,24 @@ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
TSVN = $(wildcard t91[0-9][0-9]-*.sh) TSVN = $(wildcard t91[0-9][0-9]-*.sh)


all: $(T) clean all: pre-clean $(T) aggregate-results clean


$(T): $(T):
@echo "*** $@ ***"; GIT_CONFIG=.git/config '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS) @echo "*** $@ ***"; GIT_CONFIG=.git/config '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS)


pre-clean:
$(RM) -r test-results

clean: 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 # we can test NO_OPTIMIZE_COMMITS independently of LC_ALL
full-svn-test: full-svn-test:
$(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C $(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 $(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: .NOTPARALLEL:

34
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

15
t/test-lib.sh

@ -154,6 +154,7 @@ test_failure=0
test_count=0 test_count=0
test_fixed=0 test_fixed=0
test_broken=0 test_broken=0
test_success=0


die () { die () {
echo >&5 "FATAL: Unexpected exit with code $?" echo >&5 "FATAL: Unexpected exit with code $?"
@ -195,6 +196,7 @@ test_tick () {


test_ok_ () { test_ok_ () {
test_count=$(expr "$test_count" + 1) test_count=$(expr "$test_count" + 1)
test_success=$(expr "$test_success" + 1)
say_color "" " ok $test_count: $@" say_color "" " ok $test_count: $@"
} }


@ -413,6 +415,16 @@ test_create_repo () {


test_done () { test_done () {
trap - exit 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 if test "$test_fixed" != 0
then then
@ -447,7 +459,8 @@ test_done () {


# Test the binaries we have just built. The tests are kept in # Test the binaries we have just built. The tests are kept in
# t/ subdirectory and are run in 'trash directory' subdirectory. # t/ subdirectory and are run in 'trash directory' subdirectory.
PATH=$(pwd)/..:$PATH TEST_DIRECTORY=$(pwd)
PATH=$TEST_DIRECTORY/..:$PATH
GIT_EXEC_PATH=$(pwd)/.. GIT_EXEC_PATH=$(pwd)/..
GIT_TEMPLATE_DIR=$(pwd)/../templates/blt GIT_TEMPLATE_DIR=$(pwd)/../templates/blt
unset GIT_CONFIG unset GIT_CONFIG

Loading…
Cancel
Save