From 55d0ca692c1e1207e3d7d8d0aecd8452cf007e01 Mon Sep 17 00:00:00 2001 From: jruoho Date: Wed, 24 Jun 2020 10:05:07 +0000 Subject: [PATCH] Check that fstat(1) works (cf. PR kern/55407). --- distrib/sets/lists/tests/mi | 6 ++- etc/mtree/NetBSD.dist.tests | 3 +- tests/usr.bin/fstat/Makefile | 8 ++++ tests/usr.bin/fstat/t_fstat.sh | 75 ++++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 tests/usr.bin/fstat/Makefile create mode 100644 tests/usr.bin/fstat/t_fstat.sh diff --git a/distrib/sets/lists/tests/mi b/distrib/sets/lists/tests/mi index 2a47c42703b1..b5e4a72beafb 100644 --- a/distrib/sets/lists/tests/mi +++ b/distrib/sets/lists/tests/mi @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.847 2020/06/24 09:47:17 jruoho Exp $ +# $NetBSD: mi,v 1.848 2020/06/24 10:05:07 jruoho Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -4307,6 +4307,10 @@ ./usr/tests/usr.bin/find/Atffile tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/find/Kyuafile tests-usr.bin-tests compattestfile,atf,kyua ./usr/tests/usr.bin/find/t_find tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/fstat tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/fstat/Atffile tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/fstat/Kyuafile tests-usr.bin-tests compattestfile,atf,kyua +./usr/tests/usr.bin/fstat/t_fstat tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/gdb tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/gdb/Atffile tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/gdb/Kyuafile tests-usr.bin-tests compattestfile,atf,kyua diff --git a/etc/mtree/NetBSD.dist.tests b/etc/mtree/NetBSD.dist.tests index e59e719b3768..dd3d662083a5 100644 --- a/etc/mtree/NetBSD.dist.tests +++ b/etc/mtree/NetBSD.dist.tests @@ -1,4 +1,4 @@ -# $NetBSD: NetBSD.dist.tests,v 1.165 2020/06/24 09:47:18 jruoho Exp $ +# $NetBSD: NetBSD.dist.tests,v 1.166 2020/06/24 10:05:07 jruoho Exp $ ./usr/libdata/debug/usr/tests ./usr/libdata/debug/usr/tests/atf @@ -407,6 +407,7 @@ ./usr/tests/usr.bin/diff ./usr/tests/usr.bin/dirname ./usr/tests/usr.bin/find +./usr/tests/usr.bin/fstat ./usr/tests/usr.bin/gdb ./usr/tests/usr.bin/grep ./usr/tests/usr.bin/gzip diff --git a/tests/usr.bin/fstat/Makefile b/tests/usr.bin/fstat/Makefile new file mode 100644 index 000000000000..3157dd80feff --- /dev/null +++ b/tests/usr.bin/fstat/Makefile @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 2020/06/24 10:05:07 jruoho Exp $ + +.include + +TESTSDIR= ${TESTSBASE}/usr.bin/fstat +TESTS_SH= t_fstat + +.include diff --git a/tests/usr.bin/fstat/t_fstat.sh b/tests/usr.bin/fstat/t_fstat.sh new file mode 100644 index 000000000000..cac41d4b3c53 --- /dev/null +++ b/tests/usr.bin/fstat/t_fstat.sh @@ -0,0 +1,75 @@ +# $NetBSD: t_fstat.sh,v 1.1 2020/06/24 10:05:07 jruoho Exp $ +# +# Copyright (c) 2020 The NetBSD Foundation, Inc. +# All rights reserved. +# +# This code is derived from software contributed to The NetBSD Foundation +# by Jukka Ruohonen. +# +# 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 basic +basic_head() +{ + atf_require_prog fstat + atf_set "descr" "Check that fstat(1) works" +} + +basic_body() +{ + # If there are chrooted processes running, the following + # simple test should catch also those (cf. PR kern/55407). + # + pids=$(ps -A | awk '{print $1}') + + for pid in $pids; do + + if [ $pid = "PID" ]; then + continue + fi + + atf_check -o ignore -s exit:0 -e empty -x "fstat -p $pid" + done +} + +atf_test_case err +err_head() +{ + atf_require_prog fstat + atf_set "descr" "Check fstat(1) with invalid parameters" +} + +err_body() +{ + atf_check -o empty -s exit:1 -e not-empty -x "fstat -p -1" + atf_check -o empty -s exit:1 -e not-empty -x "fstat -p -100" + atf_check -o empty -s exit:1 -e not-empty -x "fstat -p abcd" + atf_check -o empty -s exit:1 -e not-empty -x "fstat -u abcd" + atf_check -o empty -s exit:1 -e not-empty -x "fstat -u -100" +} + +atf_init_test_cases() +{ + atf_add_test_case basic + atf_add_test_case err +}