>From 62114503778d1aea824c088e8bbb19b54546b595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Sun, 13 Dec 2015 18:15:07 +0000 Subject: [PATCH 1/2] tests: add tests for the kill command * tests/misc/kill.sh: Add first tests for kill. * tests/local.mk: Reference the new test. --- tests/local.mk | 1 + tests/misc/kill.sh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100755 tests/misc/kill.sh diff --git a/tests/local.mk b/tests/local.mk index 89fdbb0..a145011 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -291,6 +291,7 @@ all_tests = \ tests/misc/head-c.sh \ tests/misc/head-pos.sh \ tests/misc/head-write-error.sh \ + tests/misc/kill.sh \ tests/misc/md5sum.pl \ tests/misc/md5sum-bsd.sh \ tests/misc/md5sum-newline.pl \ diff --git a/tests/misc/kill.sh b/tests/misc/kill.sh new file mode 100755 index 0000000..61f8498 --- /dev/null +++ b/tests/misc/kill.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# Validate kill operation + +# Copyright (C) 2015 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src +print_ver_ kill + +# params required +env kill && fail=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 + +# signal sending +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 +env kill -0 -1 || fail=1 # to group + +# table listing +env kill -l || fail=1 +env kill -t || fail=1 +env kill -t TERM || fail=1 + +# Verify name to signal number and vice versa +SIGTERM=$(env kill -l TERM) || fail=1 +test $(env kill -l "$SIGTERM") = TERM || fail=1 + +Exit $fail -- 2.5.0 >From 4d23ecf96d03c16d2fd17d3fae641f254dc40b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Sun, 13 Dec 2015 19:54:27 +0000 Subject: [PATCH 2/2] kill: add undocumented -L for compatibility procps, bash >= 4.4, and util-linux >= 2.23 all have the -L option to output a table. * src/kill.c (main): Have -L synonymous with -t. Luckily there is no signal that begins with 'L'. * tests/misc/kill.sh: Update the test. --- src/kill.c | 7 ++++--- tests/misc/kill.sh | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/kill.c b/src/kill.c index 98b270f..441456b 100644 --- a/src/kill.c +++ b/src/kill.c @@ -53,9 +53,9 @@ static char const short_options[] = "0::1::2::3::4::5::6::7::8::9::" - "A::B::C::D::E::F::G::H::I::J::K::L::M::" + "A::B::C::D::E::F::G::H::I::J::K::M::" "N::O::P::Q::R::S::T::U::V::W::X::Y::Z::" - "ln:s:t"; + "Lln:s:t"; static struct option const long_options[] = { @@ -249,7 +249,7 @@ main (int argc, char **argv) /* Fall through. */ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': - case 'K': case 'L': case 'M': case 'N': case 'O': + case 'K': /*case 'L':*/ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': @@ -274,6 +274,7 @@ main (int argc, char **argv) usage (EXIT_FAILURE); break; + case 'L': /* -L is not documented, but is for Bash compatibility. */ case 't': table = true; /* Fall through. */ diff --git a/tests/misc/kill.sh b/tests/misc/kill.sh index 61f8498..0503568 100755 --- a/tests/misc/kill.sh +++ b/tests/misc/kill.sh @@ -42,6 +42,7 @@ 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 # Verify name to signal number and vice versa -- 2.5.0