diff options
Diffstat (limited to '')
-rw-r--r-- | tests/read2.sub | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/read2.sub b/tests/read2.sub new file mode 100644 index 0000000..d353011 --- /dev/null +++ b/tests/read2.sub @@ -0,0 +1,72 @@ +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +: ${TMPDIR:=/var/tmp} + +a=4 + +read -t 1 a < /dev/tty +estat=$? +if [ $estat -gt 128 ]; then + echo timeout 1: ok +else + echo $estat +fi +echo ${a:-unset or null 1} + +read -t 0.000001 a < /dev/tty +estat=$? +if [ $estat -gt 128 ]; then + echo timeout 2: ok +else + echo $estat +fi +echo ${a:-unset or null 2} + +sleep 1 | read -t 0.25 a +estat=$? +if [ $estat -gt 128 ]; then + echo timeout 3: ok +else + echo $estat +fi +echo ${a:-unset or null 3} + +read -t -3 a < /dev/tty +echo $? + +echo $a + +# the above should all time out +echo abcde | { + read -t 0.5 a + echo $a +} + +read -t .0001 a <<<abcde +echo $a + +# this is the original test that prompted the change to sh_timers +cd $TMPDIR +rm -f a.pipe +mkfifo a.pipe +exec 9<> a.pipe +rm -f a.pipe + +for c in {0..2000}; do + (eval "echo {0..$c}" & read -u 9 -t 0.0001) >/dev/null + printf $'ok %d' "$c" >/dev/null +done + +cd $OLDPWD +rm -f $TMPDIR/a.pipe # paranoia |