Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/bin/sh Better tests for redircloexec and add t_shift (...
details: https://anonhg.NetBSD.org/src/rev/bd41754b6141
branches: trunk
changeset: 344196:bd41754b6141
user: christos <christos%NetBSD.org@localhost>
date: Wed Mar 16 21:13:51 2016 +0000
description:
Better tests for redircloexec and add t_shift (from kre)
diffstat:
tests/bin/sh/Makefile | 3 +-
tests/bin/sh/t_redircloexec.sh | 79 +++++++++++++++++++++++++++++------------
2 files changed, 57 insertions(+), 25 deletions(-)
diffs (160 lines):
diff -r ffbe5a86d5b8 -r bd41754b6141 tests/bin/sh/Makefile
--- a/tests/bin/sh/Makefile Wed Mar 16 21:09:39 2016 +0000
+++ b/tests/bin/sh/Makefile Wed Mar 16 21:13:51 2016 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.9 2016/03/16 15:49:19 christos Exp $
+# $NetBSD: Makefile,v 1.10 2016/03/16 21:13:51 christos Exp $
#
.include <bsd.own.mk>
@@ -17,6 +17,7 @@
TESTS_SH+= t_redir
TESTS_SH+= t_redircloexec
TESTS_SH+= t_set_e
+TESTS_SH+= t_shift
TESTS_SH+= t_ulimit
TESTS_SH+= t_varquote
TESTS_SH+= t_varval
diff -r ffbe5a86d5b8 -r bd41754b6141 tests/bin/sh/t_redircloexec.sh
--- a/tests/bin/sh/t_redircloexec.sh Wed Mar 16 21:09:39 2016 +0000
+++ b/tests/bin/sh/t_redircloexec.sh Wed Mar 16 21:13:51 2016 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: t_redircloexec.sh,v 1.1 2016/03/13 18:55:12 christos Exp $
+# $NetBSD: t_redircloexec.sh,v 1.2 2016/03/16 21:13:51 christos Exp $
#
# Copyright (c) 2016 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -31,25 +31,21 @@
: ${TEST_SH:="/bin/sh"}
mkhelper() {
- local name="$1"
- local fd="$2"
+ name=$1
+ fd=$2
shift 2
- (echo "#!${TEST_SH}"; echo "$@") > ./"$name"1
- (echo "#!${TEST_SH}"; echo "echo $name"2 ">&$fd") > ./"$name"2
- chmod +x ./"$name"1 ./"$name"2
+
+ echo "$@" > ./"${name}1"
+ echo "echo ${name}2" ">&${fd}" > ./"${name}2"
}
runhelper() {
- local name="$1"
- shift
-
- "./$name"1
+ ${TEST_SH} "./${1}1"
}
cleanhelper() {
- local name="$1"
- shift
- rm -f ./"$name"1 ./"$name"2
+ # not really needed, atf cleans up...
+ rm -f ./"${1}1" ./"${1}2" out
}
atf_test_case exec_redir_closed
@@ -57,11 +53,32 @@
atf_set "descr" "Tests that redirections created by exec are closed on exec"
}
exec_redir_closed_body() {
- mkhelper exec 6 "exec 6> out; echo exec1 >&6; ./exec2; exec 6>&-"
- atf_check -s exit:0 \
- -o empty \
- -e match:"./exec2: 6: Bad file descriptor" \
- ./exec1
+
+ mkhelper exec 6 \
+ "exec 6> out; echo exec1 >&6; ${TEST_SH} exec2; exec 6>&-"
+
+ atf_check -s exit:0 -o empty -e not-empty ${TEST_SH} ./exec1
+ atf_check -s not-exit:0 -o empty -e not-empty ${TEST_SH} -e ./exec1
+
+ mkhelper exec 9 \
+ "exec 9> out; echo exec1 >&9; ${TEST_SH} exec2"
+
+ atf_check -s not-exit:0 -o empty -e not-empty ${TEST_SH} ./exec1
+
+ mkhelper exec 8 \
+ "exec 8> out; printf OK; echo exec1 >&8;" \
+ "printf OK; ${TEST_SH} exec2; printf ERR"
+
+ atf_check -s not-exit:0 -o match:OKOK -o not-match:ERR -e not-empty \
+ ${TEST_SH} -e ./exec1
+
+ mkhelper exec 7 \
+ "exec 7> out; printf OK; echo exec1 >&7;" \
+ "printf OK; ${TEST_SH} exec2 || printf ERR"
+
+ atf_check -s exit:0 -o match:OKOKERR -e not-empty \
+ ${TEST_SH} ./exec1
+
cleanhelper exec
}
@@ -70,11 +87,11 @@
atf_set "descr" "Tests that redirections in loops don't close on exec"
}
loop_redir_open_body() {
- mkhelper for 3 "for x in x; do ./for2; done 3>out"
+ mkhelper for 3 "for x in x; do ${TEST_SH} ./for2; done 3>out"
atf_check -s exit:0 \
-o empty \
-e empty \
- ./for1
+ ${TEST_SH} ./for1
cleanhelper for
}
@@ -83,11 +100,11 @@
atf_set "descr" "Tests that redirections in compound statements don't close on exec"
}
compound_redir_open_body() {
- mkhelper comp 3 "{ ./comp2; } 3>out"
+ mkhelper comp 3 "{ ${TEST_SH} ./comp2; } 3>out"
atf_check -s exit:0 \
-o empty \
-e empty \
- ./comp1
+ ${TEST_SH} ./comp1
cleanhelper comp
}
@@ -96,17 +113,31 @@
atf_set "descr" "Tests that redirections in simple commands don't close on exec"
}
simple_redir_open_body() {
- mkhelper simp 6 "./simp2 6>out"
+ mkhelper simp 4 "${TEST_SH} ./simp2 4>out"
atf_check -s exit:0 \
-o empty \
-e empty \
- ./simp1
+ ${TEST_SH} ./simp1
cleanhelper simp
}
+atf_test_case subshell_redir_open
+subshell_redir_open_head() {
+ atf_set "descr" "Tests that redirections on subshells don't close on exec"
+}
+subshell_redir_open_body() {
+ mkhelper comp 5 "( ${TEST_SH} ./comp2; ${TEST_SH} ./comp2 ) 5>out"
+ atf_check -s exit:0 \
+ -o empty \
+ -e empty \
+ ${TEST_SH} ./comp1
+ cleanhelper comp
+}
+
atf_init_test_cases() {
atf_add_test_case exec_redir_closed
atf_add_test_case loop_redir_open
atf_add_test_case compound_redir_open
atf_add_test_case simple_redir_open
+ atf_add_test_case subshell_redir_open
}
Home |
Main Index |
Thread Index |
Old Index