mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-17 02:15:02 +00:00
test: Avoid double echo when starting up
There is a very annoying bug at present where the terminal echos part of the first command sent to the board. This happens because the terminal is still set to echo for a period until Labgrid starts up and can change this. Fix this by disabling echo (and other terminal features) as soon as the spawn happens. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f32951df40
commit
5825ddccc6
1 changed files with 22 additions and 0 deletions
|
@ -5,12 +5,15 @@
|
|||
Logic to spawn a sub-process and interact with its stdio.
|
||||
"""
|
||||
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
import pty
|
||||
import pytest
|
||||
import signal
|
||||
import select
|
||||
import sys
|
||||
import termios
|
||||
import time
|
||||
import traceback
|
||||
|
||||
|
@ -115,11 +118,30 @@ class Spawn:
|
|||
finally:
|
||||
os._exit(255)
|
||||
|
||||
old = None
|
||||
try:
|
||||
isatty = False
|
||||
try:
|
||||
isatty = os.isatty(sys.stdout.fileno())
|
||||
|
||||
# with --capture=tee-sys we cannot call fileno()
|
||||
except io.UnsupportedOperation as exc:
|
||||
pass
|
||||
if isatty:
|
||||
new = termios.tcgetattr(self.fd)
|
||||
old = new
|
||||
new[3] = new[3] & ~(termios.ICANON | termios.ISIG)
|
||||
new[3] = new[3] & ~termios.ECHO
|
||||
new[6][termios.VMIN] = 0
|
||||
new[6][termios.VTIME] = 0
|
||||
termios.tcsetattr(self.fd, termios.TCSANOW, new)
|
||||
|
||||
self.poll = select.poll()
|
||||
self.poll.register(self.fd, select.POLLIN | select.POLLPRI | select.POLLERR |
|
||||
select.POLLHUP | select.POLLNVAL)
|
||||
except:
|
||||
if old:
|
||||
termios.tcsetattr(self.fd, termios.TCSANOW, old)
|
||||
self.close()
|
||||
raise
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue