Mercurial > gnulib
view tests/test-yesno.sh @ 40236:e3496deebf30
isatty: Make it return true in Cygwin consoles on native Windows.
* lib/isatty.c: Include <string.h>.
(GetProcAddress): New macro.
(GetNamedPipeClientProcessIdFuncType): New type.
(GetNamedPipeClientProcessIdFunc): New variable.
(QueryFullProcessImageNameFuncType): New type.
(QueryFullProcessImageNameFunc): New variable.
(initialized): New variable.
(initialize): New function.
(IsCygwinConsoleHandle): New function.
(isatty): Invoke it.
* doc/posix-functions/isatty.texi: Mention the issue.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Thu, 14 Mar 2019 23:54:28 +0100 |
parents | 8c1a17df67e0 |
children |
line wrap: on
line source
#!/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 follow-on 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 (${CHECKER} test-yesno; ${CHECKER} 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 (${CHECKER} test-yesno 3; ${CHECKER} 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 | ${CHECKER} 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 with no EOL at EOF cat <<EOF > xout.tmp Y EOF printf y | ${CHECKER} test-yesno 1 > 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 ${CHECKER} 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 ${CHECKER} 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