better error handling
[mmh] / test / runalltests
1 #!/bin/sh
2
3 passed=0
4 failed=0
5 skipped=0
6
7 # Note that we ignore *~ files as these are probably editor backups
8 for i in `find tests -name 'test-*[!~]' -type f | LC_ALL=C sort`;
9 do
10         ./runtest "$i"
11         case $? in
12         0)      passed="`expr $passed + 1`" ;;
13         1)      failed="`expr $failed + 1`" ;;
14         2)      skipped="`expr $skipped + 1`" ;;
15         esac
16 done
17
18 awk -v passed="$passed" -v failed="$failed" -v skipped="$skipped" '
19 BEGIN {
20         sum = passed + failed + skipped;
21         if (failed > 0) {
22                 smilie = ":-("
23         } else if (sum == passed) {
24                 smilie = ":-)"
25         } else {
26                 # we either passed the tests or managed to sneak around them
27                 smilie = ";-)"
28         }
29         printf("\n%s  %s\n", "SUMMARY", smilie);
30         printf("%-12s %4d = %d%%\n", "Passed", passed, passed/sum*100);
31         printf("%-12s %4d = %d%%\n", "Failed", failed, failed/sum*100);
32         printf("%-12s %4d = %d%%\n", "Skipped", skipped, skipped/sum*100);
33         printf("%-12s %4d\n", "Total", sum);
34 }
35 '
36
37 exit `test "$failed" -eq 0`