Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src PR bin/50934



details:   https://anonhg.NetBSD.org/src/rev/add70c03cf2d
branches:  trunk
changeset: 821902:add70c03cf2d
user:      kre <kre%NetBSD.org@localhost>
date:      Tue Feb 21 10:40:30 2017 +0000

description:
PR bin/50934

Add a test program for the bug described in this PR.
This is the first pkill/pgrep/prenice test (more would be good!)

This test has been confirmed to work once the bug described in the PR
has been fixed, so the test is not marked "expected to fail" even
though initially that is what should happen.

Note: the test cana also fail if the system running the tests happens
to be running processes with names that match the patterns searched for
by the test, other than the test program itself.  This is expected to be
unlikely.

diffstat:

 distrib/sets/lists/tests/mi    |   6 ++-
 etc/mtree/NetBSD.dist.tests    |   3 +-
 tests/usr.bin/Makefile         |   6 +-
 tests/usr.bin/pkill/Makefile   |   8 ++++
 tests/usr.bin/pkill/t_pgrep.sh |  75 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 93 insertions(+), 5 deletions(-)

diffs (148 lines):

diff -r e8876178166e -r add70c03cf2d distrib/sets/lists/tests/mi
--- a/distrib/sets/lists/tests/mi       Tue Feb 21 09:23:31 2017 +0000
+++ b/distrib/sets/lists/tests/mi       Tue Feb 21 10:40:30 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.722 2017/02/20 03:14:42 kamil Exp $
+# $NetBSD: mi,v 1.723 2017/02/21 10:40:30 kre Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -3812,6 +3812,10 @@
 ./usr/tests/usr.bin/netpgpverify/Atffile               tests-usr.bin-tests     compattestfile,atf
 ./usr/tests/usr.bin/netpgpverify/Kyuafile              tests-usr.bin-tests     compattestfile,atf,kyua
 ./usr/tests/usr.bin/netpgpverify/t_netpgpverify                tests-usr.bin-tests     compattestfile,atf
+./usr/tests/usr.bin/pkill                      tests-usr.bin-tests     compattestfile,atf
+./usr/tests/usr.bin/pkill/Atffile              tests-usr.bin-tests     compattestfile,atf
+./usr/tests/usr.bin/pkill/Kyuafile             tests-usr.bin-tests     compattestfile,atf,kyua
+./usr/tests/usr.bin/pkill/t_pgrep              tests-usr.bin-tests     compattestfile,atf
 ./usr/tests/usr.bin/pr                         tests-usr.bin-tests     compattestfile,atf
 ./usr/tests/usr.bin/pr/Atffile                 tests-usr.bin-tests     compattestfile,atf
 ./usr/tests/usr.bin/pr/Kyuafile                        tests-usr.bin-tests     compattestfile,atf,kyua
diff -r e8876178166e -r add70c03cf2d etc/mtree/NetBSD.dist.tests
--- a/etc/mtree/NetBSD.dist.tests       Tue Feb 21 09:23:31 2017 +0000
+++ b/etc/mtree/NetBSD.dist.tests       Tue Feb 21 10:40:30 2017 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: NetBSD.dist.tests,v 1.141 2017/02/20 03:14:42 kamil Exp $
+#      $NetBSD: NetBSD.dist.tests,v 1.142 2017/02/21 10:40:30 kre Exp $
 
 ./usr/libdata/debug/usr/tests
 ./usr/libdata/debug/usr/tests/atf
@@ -407,6 +407,7 @@
 ./usr/tests/usr.bin/mixerctl
 ./usr/tests/usr.bin/mkdep
 ./usr/tests/usr.bin/nbperf
+./usr/tests/usr.bin/pkill
 ./usr/tests/usr.bin/pr
 ./usr/tests/usr.bin/rump_server
 ./usr/tests/usr.bin/sdiff
diff -r e8876178166e -r add70c03cf2d tests/usr.bin/Makefile
--- a/tests/usr.bin/Makefile    Tue Feb 21 09:23:31 2017 +0000
+++ b/tests/usr.bin/Makefile    Tue Feb 21 10:40:30 2017 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.23 2017/01/02 15:40:09 christos Exp $
+#      $NetBSD: Makefile,v 1.24 2017/02/21 10:40:30 kre Exp $
 #
 
 .include <bsd.own.mk>
@@ -7,8 +7,8 @@
 
 TESTS_SUBDIRS= awk basename bzip2 cc cmp config cut \
                diff dirname find gdb grep gzip id \
-               infocmp jot ld m4 make mixerctl mkdep \
-               nbperf netpgpverify pr rump_server shmif_dumpbus sdiff \
+               infocmp jot ld m4 make mixerctl mkdep nbperf netpgpverify \
+               pkill pr rump_server shmif_dumpbus sdiff \
                sed sort tmux tr unifdef uniq vmstat xlint
 
 .include <bsd.test.mk>
diff -r e8876178166e -r add70c03cf2d tests/usr.bin/pkill/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/usr.bin/pkill/Makefile      Tue Feb 21 10:40:30 2017 +0000
@@ -0,0 +1,8 @@
+# $NetBSD: Makefile,v 1.1 2017/02/21 10:40:30 kre Exp $
+
+.include <bsd.own.mk>
+
+TESTSDIR=      ${TESTSBASE}/usr.bin/pkill
+TESTS_SH=      t_pgrep
+
+.include <bsd.test.mk>
diff -r e8876178166e -r add70c03cf2d tests/usr.bin/pkill/t_pgrep.sh
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/usr.bin/pkill/t_pgrep.sh    Tue Feb 21 10:40:30 2017 +0000
@@ -0,0 +1,75 @@
+# $NetBSD: t_pgrep.sh,v 1.1 2017/02/21 10:40:30 kre Exp $
+#
+# Copyright (c) 2016 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+atf_test_case pr50934
+basic_shift_test_head() {
+       atf_set "descr" "Test fix for PR bin/50934 (null argv[0])"
+}
+pr50934_body() {
+       atf_require_prog pgrep
+       atf_require_prog cc
+
+       cat > t.c <<'!'
+#include <stdlib.h>
+int
+#include <unistd.h>
+
+main(int argc, char **argv)
+{
+       sleep(2);
+       argv[0] = 0;
+       pause();
+       exit(0);
+}
+!
+
+       cc -o t0123456789abcdefg-beef t.c || atf_fail "t.c compile failed"
+
+       ./t0123456789abcdefg-beef &
+       PID=$!
+
+       pgrep -l t0123456 >OUT  ; # should find the process
+       pgrep -l beef >>OUT     ; # should find the process
+
+       sleep 5                 ; # allow time for sleep in t.c and argv[0]=0
+
+       pgrep -l t0123456 >>OUT ; # should find the process
+       pgrep -l beef >>OUT     ; # should find nothing
+
+       kill -9 $PID
+       cat OUT ; # just for the log
+
+       # note that pgrep -l only ever prints p_comm which is of limited sicze
+       atf_check_equal "$(cat OUT)" \
+          "$PID t0123456789abcde $PID t0123456789abcde $PID t0123456789abcde"
+
+       return 0
+}
+
+atf_init_test_cases() {
+       atf_add_test_case pr50934
+}



Home | Main Index | Thread Index | Old Index