summaryrefslogtreecommitdiff
path: root/regress/bin/ksh/read.t
diff options
context:
space:
mode:
Diffstat (limited to 'regress/bin/ksh/read.t')
-rw-r--r--regress/bin/ksh/read.t58
1 files changed, 58 insertions, 0 deletions
diff --git a/regress/bin/ksh/read.t b/regress/bin/ksh/read.t
new file mode 100644
index 00000000000..021d1e58870
--- /dev/null
+++ b/regress/bin/ksh/read.t
@@ -0,0 +1,58 @@
+# $OpenBSD: read.t,v 1.1 2013/12/02 20:39:44 millert Exp $
+
+#
+# To test:
+# POSIX:
+# - if no -r, \ is escape character
+# - \newline disappear
+# - \<IFS> -> don't break here
+# - \<anything-else> -> <anything-else>
+# - if -r, backslash is not special
+# - if stdin is tty and shell interactive
+# - prompt for continuation if \newline (prompt to stderr)
+# - a here-document isn't terminated after newline ????
+# - remaining vars set to empty string (not null)
+# - check field splitting
+# - left over fields and their separators assigned to last var
+# - exit status is normally 0
+# - exit status is > 0 on eof
+# - exit status > 0 on error
+# - signals interrupt reads
+# extra:
+# - can't change read-only variables
+# - error if var name bogus
+# - set -o allexport effects read
+# ksh:
+# x check default variable: REPLY
+# - check -p, -s, -u options
+# - check var?prompt stuff
+# - "echo a b | read x y" sets x,y in parent shell (at&t)
+#
+name: read-IFS-1
+description:
+ Simple test, default IFS
+stdin:
+ echo "A B " > IN
+ unset x y z
+ read x y z < IN
+ echo 1: "x[$x] y[$y] z[$z]"
+ echo 1a: ${z-z not set}
+ read x < IN
+ echo 2: "x[$x]"
+expected-stdout:
+ 1: x[A] y[B] z[]
+ 1a:
+ 2: x[A B]
+---
+
+name: read-ksh-1
+description:
+ If no var specified, REPLY is used
+stdin:
+ echo "abc" > IN
+ read < IN
+ echo "[$REPLY]";
+expected-stdout:
+ [abc]
+---
+