> The tests are not supposed to hang even if the > program being tested does.
The process hierarchy (from top to bottom) is: gmake check gmake check-am gmake check-TESTS /bin/sh -c set +e; bases='t/file.sh.log t/file-node.sh.log t/file-nodes.sh.log t/file-node-with-dot.sh.log t/file-index.sh.log gmake test-suite.log TEST_LOGS=t/file.sh.log t/file-node.sh.log t/file-nodes.sh.log t/file-node-with-dot.sh.log t/file-index.sh /bin/sh -c p='t/malformed-split.sh'; \^Jb='t/malformed-split.sh'; \^Jcase $- in *e*) set +e;; esac; srcdirstrip=`echo "../../in /bin/sh ../../build-aux/test-driver --test-name t/malformed-split.sh --log-file t/malformed-split.sh.log --trs-file t/malformed /bin/sh ../../info/t/malformed-split.sh ./pseudotty t/malformed-split.sh.pipeout > Could you send the contents of > info/t/malformed-split.sh.log please? $ cat malformed-split.sh.log + ginfo=./ginfo --init-file ../../info/t/Infokey-config + INFOPATH=../../info/t/infodir + export INFOPATH + t=../../info/t + export t + + basename ../../info/t/malformed-split.sh.out ginfo_output=t/malformed-split.sh.out + + basename ../../info/t/malformed-split.sh.pipein pipein=t/malformed-split.sh.pipein + + basename ../../info/t/malformed-split.sh.pipeout pty_type=t/malformed-split.sh.pipeout + rm -f t/malformed-split.sh.out + INFO_PRINT_COMMAND=>t/malformed-split.sh.out + export INFO_PRINT_COMMAND + pty_pid=0 + LC_ALL=C + export LC_ALL + TERM=dumb + export TERM + trap cleanup 2 + path_sep=: + initialization_done=0 + run_ginfo --file malformed-split --node Two pseudotty: getting pty master fd pseudotty: unlocking slave device pseudotty: getting file name of slave device... pseudotty: /dev/pts/8 pseudotty: opening slave device Adding more debugging statements, I see that it hangs in the line if (!isatty (slave)) Commenting out this line fixes the issue; all 85 tests in this directory then pass. Note: The code in gnulib/lib/openpty.c, which is tested on many platforms, does not contain an isatty() call in this place. Bruno
