mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Add FreeBSD stty workaround for pty regression tests
Apparently, on FreeBSD, the stty command does not work correctly for setting 'erase' or 'kill' on a pty pseudoterminal. I've no idea whether the bug is in FreeBSD stty or in AST pty, but in any case, a workaround is needed for the time being. src/cmd/ksh93/tests/pty.sh: - Save terminal state on init; set a trap to restore it on exit. - Issue 'stty erase ^H kill ^X' on the real terminal before entering pty pseudoterminals. Resolves #44.
This commit is contained in:
parent
66c955bc8f
commit
8ad56f90ab
1 changed files with 6 additions and 0 deletions
|
@ -44,6 +44,12 @@ integer Errors=0 lineno=1
|
|||
[[ -d $tmp && -w $tmp ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; }
|
||||
whence -q pty || { lineno=$LINENO; err\_exit "$LINENO" "pty command not found -- tests skipped"; exit 0; }
|
||||
|
||||
# On FreeBSD, the stty command does not appear to work correctly on a pty pseudoterminal.
|
||||
# To avoid a couple of false regressions, we have to set 'erase' and 'kill' on the real terminal.
|
||||
stty_restore=$(stty -g) || { lineno=$LINENO; err\_exit "$LINENO" "could not save terminal state -- tests skipped"; exit 0; }
|
||||
trap 'stty "$stty_restore"' EXIT # note: on ksh, the EXIT trap is also triggered for termination due to a signal
|
||||
stty erase ^H kill ^X
|
||||
|
||||
bintrue=$(whence -p true)
|
||||
|
||||
x=$( $SHELL <<- \EOF
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue