about summary refs log tree commit diff
path: root/Test/V14system.ztst
diff options
context:
space:
mode:
Diffstat (limited to 'Test/V14system.ztst')
-rw-r--r--Test/V14system.ztst68
1 files changed, 67 insertions, 1 deletions
diff --git a/Test/V14system.ztst b/Test/V14system.ztst
index 100daab08..81253324f 100644
--- a/Test/V14system.ztst
+++ b/Test/V14system.ztst
@@ -5,10 +5,10 @@
   if zmodload -s zsh/system && zmodload -s zsh/zselect; then
     tst_dir=V14.tmp
     mkdir -p -- $tst_dir
+    : > $tst_dir/file # File on which to acquire flock.
   else
     ZTST_unimplemented='the zsh/system and zsh/zselect modules are not available'
   fi
-  : > $tst_dir/file # File on which to acquire flock.
 
 %test
 
@@ -147,3 +147,69 @@ F:This timing test might fail due to process scheduling issues unrelated to zsh.
 0:zsystem flock successful wait test, fractional seconds
 ?elapsed time seems OK
 F:This timing test might fail due to process scheduling issues unrelated to zsh.
+
+  unset chars REPLY
+  print -n a few words | sysread -i 0 -c chars
+  ret=$?
+  print -- $chars x${REPLY}x
+  return ret
+0:sysread default
+>11 xa few wordsx
+
+  unset chars REPLY
+  sysread -i 9 -c chars
+  ret=$?
+  print -- $chars x${REPLY}x
+  return ret
+2:sysread read error
+>-1 xx
+
+  REPLY="say nothing"
+  sysread -i 9 -c chars
+  ret=$?
+  print -- $chars x${REPLY}x
+  return ret
+2f:sysread read error
+F:The value of $REPLY should be empty or unset when nothing is read?
+>-1 xx
+
+  unset chars REPLY
+  print -n a few words | sysread -i 0 -o 9 -c chars
+  ret=$?
+  print -- $chars x${REPLY}x
+  return ret
+3:sysread write error
+>11 xx
+
+  sleep 3 | sysread -i 0 -t 1
+4:sysread timeout
+
+  sysread -i 0 </dev/null
+5:sysread end of file
+
+  unset chars oration
+  print -n a few words | sysread -i 0 -o 9 -c chars oration
+  ret=$?
+  print $chars x${oration}x $REPLY
+  return ret
+3:regression test: sysread write error with both -o and a parameter
+>11 xa few wordsx
+
+  unset chars oration
+  print a few words | sysread -i 0 -o 1 -c chars oration
+  ret=$?
+  print -- $chars x${oration}x $REPLY
+  return ret
+0:regression test: sucessful sysread with both -o and a parameter
+>a few words
+>12 xx
+
+  oration="do not say these words"
+  print a few words | sysread -i 0 -o 1 -c chars oration
+  ret=$?
+  print -- $chars x${oration}x $REPLY
+  return ret
+0f:successful sysread with both -o and a parameter
+F:The value of $oration should be empty or unset when everything is written?
+>a few words
+>12 xx