Module Name:    src
Committed By:   christos
Date:           Sun Aug 23 07:15:16 UTC 2015

Modified Files:
        src/tests/bin/sh: t_wait.sh

Log Message:
another wait test.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/bin/sh/t_wait.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/bin/sh/t_wait.sh
diff -u src/tests/bin/sh/t_wait.sh:1.1 src/tests/bin/sh/t_wait.sh:1.2
--- src/tests/bin/sh/t_wait.sh:1.1	Sat Mar 17 12:33:11 2012
+++ src/tests/bin/sh/t_wait.sh	Sun Aug 23 03:15:16 2015
@@ -1,4 +1,4 @@
-# $NetBSD: t_wait.sh,v 1.1 2012/03/17 16:33:11 jruoho Exp $
+# $NetBSD: t_wait.sh,v 1.2 2015/08/23 07:15:16 christos Exp $
 #
 # Copyright (c) 2008, 2009, 2010 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -32,28 +32,58 @@ individual_head() {
 individual_body() {
 	# atf-sh confuses wait for some reason; work it around by creating
 	# a helper script that executes /bin/sh directly.
-	cat >helper.sh <<EOF
+	cat >individualhelper.sh <<\EOF
 sleep 3 &
 sleep 1 &
 
 wait %1
-if [ \$? -ne 0 ]; then
+if [ $? -ne 0 ]; then
     echo "Waiting of first job failed"
     exit 1
 fi
 
 wait %2
-if [ \$? -ne 0 ]; then
+if [ $? -ne 0 ]; then
     echo "Waiting of second job failed"
     exit 1
 fi
 
 exit 0
 EOF
-	output=$(/bin/sh helper.sh)
+	output=$(/bin/sh individualhelper.sh)
 	[ $? -eq 0 ] || atf_fail "${output}"
+	rm -f individualhelper.sh
+}
+
+atf_test_case kill
+kill_head() {
+	atf_set "descr" "Tests that killing the shell while in wait calls trap"
+}
+kill_body() {
+	# atf-sh confuses wait for some reason; work it around by creating
+	# a helper script that executes /bin/sh directly.
+	local s=$PWD/killhelper.sh
+	local z=/tmp/killhelper.$$ 
+	cat >$s <<\EOF
+#!/bin/sh
+trap "echo SIGHUP" 1
+sleep 10 &
+sl=$!
+wait
+echo $?
+EOF
+	chmod +x $s
+	$s > $z &
+	# XXX: built-in kill does not work?
+	/bin/kill -HUP $!
+	output="$(cat $z | tr '\n' ' ')"
+	rm -f $s $z
+	if [ "$output" != "SIGHUP 129 " ]; then
+		atf_fail "${output} != 'SIGHUP 129 '"
+	fi
 }
 
 atf_init_test_cases() {
 	atf_add_test_case individual
+	atf_add_test_case kill
 }

Reply via email to