unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
blob 6845fcf0b2ae06b55e8a94e926c1f30484e3f14d 2017 bytes (raw)
name: test/aggregate-results.sh 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
#!/usr/bin/env bash

set -eu

fixed=0
success=0
failed=0
broken=0
total=0
all_skipped=0
rep_failed=0

for file
do
	if [ ! -f "$file" ]; then
		echo "'$file' does not exist!"
		rep_failed=$((rep_failed + 1))
		continue
	fi
	has_total=0
	while read type value
	do
		case $type in
		fixed)
			fixed=$((fixed + value)) ;;
		success)
			success=$((success + value)) ;;
		failed)
			failed=$((failed + value)) ;;
		broken)
			broken=$((broken + value)) ;;
		total)
			total=$((total + value))
			has_total=1
			if [ "$value" -eq 0 ]; then
				all_skipped=$((all_skipped + 1))
			fi
		esac
	done <"$file"
	if [ "$has_total" -eq 0 ]; then
		echo "'$file' lacks 'total ...'; results may be inconsistent."
		failed=$((failed + 1))
	fi
done

pluralize_s () { [ "$1" -eq 1 ] && s='' || s='s'; }

echo "Notmuch test suite complete."

if [ "$fixed" -eq 0 ] && [ "$failed" -eq 0 ] && [ "$rep_failed" -eq 0 ]; then
	pluralize_s "$total"
	printf "All $total test$s "
	if [ "$broken" -eq 0 ]; then
		echo "passed."
	else
		pluralize_s "$broken"
		echo "behaved as expected ($broken expected failure$s)."
	fi
else
	echo "$success/$total tests passed."
	if [ "$broken" -ne 0 ]; then
		pluralize_s "$broken"
		echo "$broken broken test$s failed as expected."
	fi
	if [ "$fixed" -ne 0 ]; then
		pluralize_s "$fixed"
		echo "$fixed broken test$s now fixed."
	fi
	if [ "$failed" -ne 0 ]; then
		pluralize_s "$failed"
		echo "$failed test$s failed."
	fi
fi

skipped=$((total - fixed - success - failed - broken))
if [ "$skipped" -ne 0 ]; then
	pluralize_s "$skipped"
	echo "$skipped test$s skipped."
fi
if [ "$all_skipped" -ne 0 ]; then
	pluralize_s "$all_skipped"
	echo "All tests in $all_skipped file$s skipped."
fi

if [ "$rep_failed" -ne 0 ]; then
	pluralize_s "$rep_failed"
	echo "$rep_failed test$s failed to report results."
fi

# Note that we currently do not consider skipped tests as failing the
# build.

if [ "$success" -gt 0 ] && [ "$fixed" -eq 0 ] &&
	[ "$failed" -eq 0 ] && [ "$rep_failed" -eq 0 ]
then
	exit 0
else
	exit 1
fi

debug log:

solving 6845fcf0 ...
found 6845fcf0 in https://yhetil.org/notmuch.git/

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).