diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-27 12:37:11 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-27 13:08:41 +0100 |
commit | 470cf3f63b4d284dbaaef8da936e716438063ac1 (patch) | |
tree | 78ab5791488f19e3dfc7573941f81b7d24ff88e7 /tests/enumerate-tests | |
parent | 173757ec53902ea11825c26bb8245971c157455a (diff) |
Test suite: rename list-tests to enumerate-tests for ease of completion over tests/lib*
Diffstat (limited to 'tests/enumerate-tests')
-rwxr-xr-x | tests/enumerate-tests | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/enumerate-tests b/tests/enumerate-tests new file mode 100755 index 0000000..912ee4f --- /dev/null +++ b/tests/enumerate-tests @@ -0,0 +1,107 @@ +#!/bin/bash + +set -e + +. tests/lib-core +. tests/lib-restricts + +mode=$1 + +test-begin- () { + whynots='' +} + +restriction- () { + set +e + whynot=$(t-restriction-$r) + rc=$? + set -e + case "$rc.$whynot" in + 0.) ;; + 1.?*) whynots="$whynots${whynots:+; }$whynot" ;; + *) fail "restriction $r for $t gave $rc $whynot !" + esac +} + +dependencies- () { + : +} + +test-done- () { + case "$whynots" in + '') echo $t ;; + ?*) echo >&2 "SKIP $t $whynots" ;; + esac +} + +finish- () { + : +} + +test-begin-gencontrol () { + restrictions='' + dependencies='' +} + +restriction-gencontrol () { + restrictions+=" $r" +} + +dependencies-gencontrol () { + dependencies+=", $deps" +} + +test-done-gencontrol () { + stanza=$( + add_Depends="$dependencies" \ + perl <debian/tests/control.in -wpe ' + if (/^(\w+):/) { + my $h = $1; + s{$}{ $ENV{"add_$h"} // "" }e; + } + ' + case "$restrictions" in + ?*) echo "Restrictions:$restrictions" ;; + esac + ) + key=$(printf "%s" "$stanza" | sha256sum) + key=${key%% *} + eval " + stanza_$key=\"\$stanza\" + tests_$key+=\" \${t#tests/tests/}\" + " + keys=" ${keys/ $key /}" + keys+=" $key " +} + +finish-gencontrol () { + for key in $keys; do + eval " + stanza=\$stanza_$key + tests=\$tests_$key + " + printf "Tests:%s\n%s\n\n" "$tests" "$stanza" + done +} + +seddery () { + local seddery=$1 + sed <$t -n ' + 20q; + /^: t-enumerate-tests-end$/q; + '"$seddery"' + ' +} + +for t in $(run-parts --list tests/tests); do + test-begin-$mode + for r in $(seddery 's/^t-restrict //p'); do + restriction-$mode + done + for deps in $(seddery 's/^t-dependencies //p'); do + dependencies-$mode + done + test-done-$mode +done + +finish-$mode |