On 13/12/15 20:08, Pádraig Brady wrote: > On 10/11/15 07:27, Bernhard Voelker wrote: >> On 11/10/2015 12:54 AM, Pádraig Brady wrote: >>> For these reasons I might just keep the test cleanups >>> from my previous patch but continue to build kill by default? >> >> +1 > > Two more patches related to this attached. > > kill: add undocumented -L for compatibility > tests: add tests for the kill command
The tests were pushed a little early and could have been improved a bit. The attached 2 patches do that, with one being an improved syntax check to flag commands like: env ... && fails=1 cheers, Pádraig.
>From d3ddf7bce45ac73c9d5180bed5ad2f10192b28f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= <p...@draigbrady.com> Date: Tue, 15 Dec 2015 00:30:47 +0000 Subject: [PATCH 1/2] tests: improve kill tests * tests/misc/kill.sh: - verify kill -[lt] support multiple parameters. - verify kill -[lt] fail with (some) invalid parameters. - Use returns_1 ... || fail=1, rather than ... && fail=1. --- tests/misc/kill.sh | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/tests/misc/kill.sh b/tests/misc/kill.sh index 0503568..68998ce 100755 --- a/tests/misc/kill.sh +++ b/tests/misc/kill.sh @@ -20,33 +20,39 @@ print_ver_ kill # params required -env kill && fail=1 -env kill -TERM && fail=1 +returns_ 1 env kill || fail=1 +returns_ 1 env kill -TERM || fail=1 # Invalid combinations -env kill -l -l && fail=1 -env kill -l -t && fail=1 -env kill -l -s 1 && fail=1 -env kill -t -s 1 && fail=1 +returns_ 1 env kill -l -l || fail=1 +returns_ 1 env kill -l -t || fail=1 +returns_ 1 env kill -l -s 1 || fail=1 +returns_ 1 env kill -t -s 1 || fail=1 # signal sending -env kill -0 no_pid && fail=1 +returns_ 1 env kill -0 no_pid || fail=1 env kill -0 $$ || fail=1 env kill -s0 $$ || fail=1 env kill -n0 $$ || fail=1 # bash compat env kill -CONT $$ || fail=1 env kill -Cont $$ || fail=1 -env kill -cont $$ && fail=1 +returns_ 1 env kill -cont $$ || fail=1 env kill -0 -1 || fail=1 # to group # table listing env kill -l || fail=1 env kill -t || fail=1 env kill -L || fail=1 # bash compat -env kill -t TERM || fail=1 +env kill -t TERM HUP || fail=1 -# Verify name to signal number and vice versa -SIGTERM=$(env kill -l TERM) || fail=1 +# Verify (multi) name to signal number and vice versa +SIGTERM=$(env kill -l HUP TERM | tail -n1) || fail=1 test $(env kill -l "$SIGTERM") = TERM || fail=1 +# Verify invalid signal spec is diagnosed +SIGINVAL=$(env kill -t | tail -n1 | cut -f1 -d' ') +SIGINVAL=$(expr "$SIGINVAL" + 1) +returns_ 1 env kill -l "$SIGINVAL" 0 || fail=1 +returns_ 1 env kill -l INVALID TERM || fail=1 + Exit $fail -- 2.5.0 >From 070cec3234aeba6e5456b71ce25a34687b0dd6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= <p...@draigbrady.com> Date: Tue, 15 Dec 2015 17:29:13 +0000 Subject: [PATCH 2/2] maint: include 'env' commands in returns_ syntax check * cfg.mk (sc_prohibit_and_fail_1): Remove 'env' from the exclusion list. * tests/misc/env.sh: Adjust accordingly. * tests/misc/help-version.sh: Likewise. --- cfg.mk | 2 +- tests/misc/env.sh | 6 ++---- tests/misc/help-version.sh | 14 +++++++------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/cfg.mk b/cfg.mk index 70808fd..656035b 100644 --- a/cfg.mk +++ b/cfg.mk @@ -484,7 +484,7 @@ sc_prohibit_fail_0: # independently check its contents and thus detect any crash messages. sc_prohibit_and_fail_1: @prohibit='&& fail=1' \ - exclude='(stat|kill|test |EGREP|grep|env|compare|2> *[^/])' \ + exclude='(stat|kill|test |EGREP|grep|compare|2> *[^/])' \ halt='&& fail=1 detected. Please use: returns_ 1 ... || fail=1' \ in_vc_files='^tests/' \ $(_sc_search_regexp) diff --git a/tests/misc/env.sh b/tests/misc/env.sh index d7c5a09..f03b158 100755 --- a/tests/misc/env.sh +++ b/tests/misc/env.sh @@ -153,9 +153,7 @@ test "x$(sh -c '\c=d echo fail')" = xpass && #dash 0.5.4 fails so check first { test "x$(env sh -c '\c=d echo fail')" = xpass || fail=1; } # catch unsetenv failure, broken through coreutils 8.0 -env -u a=b true && fail=1 -test $? = 125 || fail=1 -env -u '' true && fail=1 -test $? = 125 || fail=1 +returns_ 125 env -u a=b true || fail=1 +returns_ 125 env -u '' true || fail=1 Exit $fail diff --git a/tests/misc/help-version.sh b/tests/misc/help-version.sh index 1878ae9..a294933 100755 --- a/tests/misc/help-version.sh +++ b/tests/misc/help-version.sh @@ -85,19 +85,19 @@ for i in $built_programs; do # Make sure they fail upon 'disk full' error. if test -w /dev/full && test -c /dev/full; then - env $i --help >/dev/full 2>/dev/null && fail=1 - env $i --version >/dev/full 2>/dev/null && fail=1 - status=$? test $i = [ && prog=lbracket || prog=$(echo $i|sed "s/$EXEEXT$//") eval "expected=\$expected_failure_status_$prog" test x$expected = x && expected=1 - if test $status = $expected; then - : # ok - else + + returns_ $expected env $i --help >/dev/full 2>/dev/null && + returns_ $expected env $i --version >/dev/full 2>/dev/null || + { fail=1 + env $i --help >/dev/full 2>/dev/null + status=$? echo "*** $i: bad exit status '$status' (expected $expected)," 1>&2 echo " with --help or --version output redirected to /dev/full" 1>&2 - fi + } fi done -- 2.5.0