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

cheers,
Pádraig.
>From 62114503778d1aea824c088e8bbb19b54546b595 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email protected]>
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 <http://www.gnu.org/licenses/>.
+
+. "${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?= <[email protected]>
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

Reply via email to