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)) @@ -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:

34
t/aggregate-results.sh

@ -0,0 +1,34 @@ @@ -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 @@ -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 () { @@ -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 () { @@ -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 () { @@ -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

Loading…
Cancel
Save