tests/test-rhg.t
author Manuel Jacob <me@manueljacob.de>
Tue, 07 Jul 2020 11:06:37 +0200
changeset 45068 8cd18aba5e6c
parent 45050 18f8d3b31baa
child 45437 e339693addc0
permissions -rw-r--r--
tests: proof test-stdio.py against buffer fill-up With the previous code, it could in theory happen that the pipe / PTY buffer of the child stdout / stderr fills up and the process never finishes. To prevent that, we read all of the stream before waiting for the end of the process. To ensure that the stream reaches EOF when the child finishes, we must close the parent "copy" of the child stdout / stderr.

#require rust

  $ rhg() {
  > if [ -f "$RUNTESTDIR/../rust/target/debug/rhg" ]; then
  >   "$RUNTESTDIR/../rust/target/debug/rhg" "$@"
  > else
  >   echo "skipped: Cannot find rhg. Try to run cargo build in rust/rhg."
  >   exit 80
  > fi
  > }
  $ rhg unimplemented-command
  [252]
  $ rhg root
  abort: no repository found in '$TESTTMP' (.hg not found)!
  [255]
  $ hg init repository
  $ cd repository
  $ rhg root
  $TESTTMP/repository
  $ rhg root > /dev/full
  abort: No space left on device (os error 28)
  [255]
  $ rm -rf `pwd`
  $ rhg root
  abort: error getting current working directory: $ENOENT$
  [255]