#!/bin/sh objdir=$1 srcdir=$2 [ -z "$TERM" ] && TERM=xterm tput init # see if it supports colors... ncolors=$(tput colors) if test -n "$ncolors" && test $ncolors -ge 8; then bold="$(tput bold)" underline="$(tput smul)" standout="$(tput smso)" normal="$(tput sgr0)" black="$(tput setaf 0)" red="$(tput setaf 1)" green="$(tput setaf 2)" yellow="$(tput setaf 3)" blue="$(tput setaf 4)" magenta="$(tput setaf 5)" cyan="$(tput setaf 6)" white="$(tput setaf 7)" fi all_tests=$(find "$objdir" -name '*_test') num_all_tests=0 for i in $all_tests; do num_all_tests=$((num_all_tests + 1)); done num_test=1 num_succ_tests=0 num_fail_tests=0 echo -e " == Start all $num_all_tests unit tests ==\n" for test in $all_tests ; do ./$test ; exit_code=$? cols=$(tput cols) offset=$((cols-17)) fmt=" [%2d/%-2d] %-${offset}s" printf "$fmt" $num_test $num_all_tests "$test" num_test=$((num_test+1)) if [ $exit_code -eq 0 ]; then printf "[${green}${bold} OK ${normal}]" num_succ_tests=$((num_succ_tests+1)) else printf "[${red}${bold}FAIL${normal}]" num_fail_tests=$((num_fail_tests+1)) fi printf "\n" done num_all_tests_src=0 for dir in client conf filter lib misc nest proto sysdep; do for i in $(find "$srcdir/$dir" -name '*_test.c'); do num_all_tests_src=$((num_all_tests_src + 1)); done done num_build_fail_tests=$((num_all_tests_src - num_all_tests)) if [ $num_build_fail_tests -lt 0 ]; then num_build_fail_tests=0 fi echo "" echo " ------------------------------" echo " Success: $num_succ_tests" echo " Failure: $num_fail_tests" echo " Build-Failure: $num_build_fail_tests" echo ""