tests/test-rhg.t
author Manuel Jacob <me@manueljacob.de>
Sat, 11 Jul 2020 06:03:22 +0200
changeset 45078 fa270dcbdb55
parent 45051 18f8d3b31baa
child 45448 e339693addc0
permissions -rw-r--r--
procutil: back out 8403cc54bc83 (make ....procutil.stderr unbuffered) Changeset 8403cc54bc83 introduced code that opens a second file object referring to the stderr file descriptor. This broke tests on Windows. The reason is that on Windows, sys.stderr is buffered and procutil.stderr closed the file descriptor when it got garbage collected before sys.stderr had the chance to flush buffered data. `procutil.stdout` had the same problem for a long time, but we didn’t realize, as in CI test runs, stdout is not a TTY and in this case no second file object is opened.

#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]