summaryrefslogtreecommitdiff
path: root/gnulib/tests/test-yesno.sh
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib/tests/test-yesno.sh')
m---------gnulib0
-rwxr-xr-xgnulib/tests/test-yesno.sh66
2 files changed, 66 insertions, 0 deletions
diff --git a/gnulib b/gnulib
deleted file mode 160000
-Subproject 443bc5ffcf7429e557f4a371b0661abe98ddbc1
diff --git a/gnulib/tests/test-yesno.sh b/gnulib/tests/test-yesno.sh
new file mode 100755
index 0000000..5e5ed40
--- /dev/null
+++ b/gnulib/tests/test-yesno.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+: ${srcdir=.}
+. "$srcdir/init.sh"; path_prepend_ .
+
+# For now, only test with C locale
+LC_ALL=C
+export LC_ALL
+
+# Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
+# does not understand '\r'.
+if echo solaris | tr -d '\r' | grep solais > /dev/null; then
+ cr='\015'
+else
+ cr='\r'
+fi
+
+# Test with seekable stdin; the followon process must see remaining data.
+tr @ '\177' <<EOF > in.tmp
+nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn - entire line consumed
+y@n - backspace does not change result
+y
+does not match either yesexpr or noexpr
+n
+EOF
+
+cat <<EOF > xout.tmp
+N
+Y
+Y
+N
+n
+EOF
+
+fail=0
+(test-yesno; test-yesno 3; cat) < in.tmp > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
+
+(test-yesno 3; test-yesno; cat) < in.tmp > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
+
+# Test for behavior on pipe
+cat <<EOF > xout.tmp
+Y
+N
+EOF
+echo yes | test-yesno 2 > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
+
+# Test for behavior on EOF
+cat <<EOF > xout.tmp
+N
+EOF
+test-yesno </dev/null > out1.tmp || fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
+
+# Test for behavior when stdin is closed
+test-yesno 0 <&- > out1.tmp 2> err.tmp && fail=1
+LC_ALL=C tr -d "$cr" < out1.tmp > out.tmp || fail=1
+cmp xout.tmp out.tmp || fail=1
+test -s err.tmp || fail=1
+
+Exit $fail