From e31fb97148f7a392aaf6cc84579a232f2969b9d1 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Sat, 23 May 2020 10:01:45 -0700 Subject: read builtin: Empty variables on timeout This matches how a non-timeout error is handled. Reviewed by: jilles MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D31876 --- bin/sh/tests/builtins/Makefile | 2 ++ bin/sh/tests/builtins/read10.0 | 8 ++++++++ bin/sh/tests/builtins/read11.0 | 17 +++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 bin/sh/tests/builtins/read10.0 create mode 100644 bin/sh/tests/builtins/read11.0 (limited to 'bin/sh/tests') diff --git a/bin/sh/tests/builtins/Makefile b/bin/sh/tests/builtins/Makefile index 197d735920e6..f9b464a6da4b 100644 --- a/bin/sh/tests/builtins/Makefile +++ b/bin/sh/tests/builtins/Makefile @@ -141,6 +141,8 @@ ${PACKAGE}FILES+= read6.0 ${PACKAGE}FILES+= read7.0 ${PACKAGE}FILES+= read8.0 ${PACKAGE}FILES+= read9.0 +${PACKAGE}FILES+= read10.0 +${PACKAGE}FILES+= read11.0 ${PACKAGE}FILES+= return1.0 ${PACKAGE}FILES+= return2.1 ${PACKAGE}FILES+= return3.1 diff --git a/bin/sh/tests/builtins/read10.0 b/bin/sh/tests/builtins/read10.0 new file mode 100644 index 000000000000..5fc19896390a --- /dev/null +++ b/bin/sh/tests/builtins/read10.0 @@ -0,0 +1,8 @@ + +set -e + +v=original_value +r=0 +read v < /dev/null || r=$? +[ "$r" -eq 1 ] +[ -z "$v" ] diff --git a/bin/sh/tests/builtins/read11.0 b/bin/sh/tests/builtins/read11.0 new file mode 100644 index 000000000000..c75ed9c92a83 --- /dev/null +++ b/bin/sh/tests/builtins/read11.0 @@ -0,0 +1,17 @@ + +set -e + +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +trap 'rm -rf "$T"' 0 +cd $T +mkfifo fifo1 +# Open fifo1 for writing and then read block on a dummy fifo +{ mkfifo fifo2; read dummy fifo1 & +# Wait for the child to open fifo1 for writing +exec 3