Comments (8)
Hi,
please run tbot
/newbot
with an additional -v
flag to show channel communication and then post the log here. Keep in mind to censor hostname/username/passwords...
Without the log, it is very hard to guess where the problem lies.
One general hint: I recommend using the SSHConnector
over the ParamikoConnector
unless you have a good reason to use the latter. The SSHConnector
usually has much less issues and the ParamikoConnector
mostly still exists due to legacy reasons.
from tbot.
Hi,
the same issue has been applied with LocalHost, a board, and a board's Linux environment:
code:
import tbot
import json
from tbot.machine import connector, board, linux
from tbot.machine.linux.linux_shell import LinuxShell
class Device(connector.ConsoleConnector, board.Board):
with open('config/config.json', 'r') as file:
data = json.load(file)
baudrate = data['DUT']['baudrate']
serial_port = data['DUT']['serial_port']
user_name = data['DUT']['username']
pass_word = data['DUT']['password']
login__prompt = data['DUT']['login_prompt']
password__prompt = data['DUT']['password_prompt']
file.close()
def connect(self, mach):
ch = mach.open_channel("picocom", "--quiet", "-b", str(Device.baudrate), "-r", "-l", Device.serial_port)
return ch
class DeviceLinux(board.Connector, board.LinuxBootLogin, linux.Bash):
login_prompt = Device.login__prompt
password_prompt = Device.password__prompt
username = Device.user_name
password = Device.pass_word
login_delay = 5
boot_timeout = 10
def register_machines(ctx):
ctx.register(Device, tbot.role.Board)
ctx.register(DeviceLinux, tbot.role.BoardLinux)
logs:
==================================================================== test session starts =====================================================================
platform linux -- Python 3.8.10, pytest-7.3.1, pluggy-1.0.0 -- /usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.8.10', 'Platform': 'Linux-5.15.0-91-generic-x86_64-with-glibc2.29', 'Packages': {'pytest': '7.3.1', 'pluggy': '1.0.0'}, 'Plugins': {'metadata': '3.0.0', 'html': '4.1.1'}}
rootdir: /home/adnanelhammoudi/Documents/system-test
plugins: metadata-3.0.0, html-4.1.1
collected 3 items
test_cases/test_connectivity.py::test_hardware_platform[x86_64] │ ├─[local] picocom --quiet -b 115200 -r -l /dev/ttyUSB2
FAILED
test_cases/test_connectivity.py::test_hardware_platform[x86] │ ├─[local] picocom --quiet -b 115200 -r -l /dev/ttyUSB2
FAILED
test_cases/test_connectivity.py::test_hardware_compatibility │ ├─[local] picocom --quiet -b 115200 -r -l /dev/ttyUSB2
^C
========================================================================== FAILURES ==========================================================================
_______________________________________________________________ test_hardware_platform[x86_64] _______________________________________________________________
architecte = 'x86_64'
@pytest.mark.parametrize("architecte",[HARDWARE_PLATFORMS[0],HARDWARE_PLATFORMS[1]])
def test_hardware_platform(architecte):
> with tbot.ctx.request(tbot.role.BoardLinux) as lnx:
test_cases/test_connectivity.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/board.py:168: in from_context
b = cx.enter_context(ctx.request(tbot.role.Board, exclusive=True))
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/connector/common.py:128: in from_context
m = cx.enter_context(cls(lh)) # type: ignore
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/local/lib/python3.8/dist-packages/tbot/machine/machine.py:158: in __enter__
self.ch = self._cx.enter_context(self._connect())
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/connector/common.py:133: in _connect
with self.host.clone() as cloned, self.connect(cloned) as ch:
config/serial_local_config.py:45: in connect
ch.read_until_prompt(prompt=Device.login__prompt, timeout = 5)
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:909: in read_until_prompt
for new in self.read_iter(timeout=timeout):
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:420: in read_iter
new = self._c.read(max_read, timeout_remaining)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tbot.machine.channel.subprocess.SubprocessChannelIO object at 0x7f7bcddea980>, n = 4096, timeout = 4.968235394000658
def read(self, n: int, timeout: typing.Optional[float] = None) -> bytes:
if not self.closed:
# If the process is still running, wait for one byte or the timeout
# to arrive. We run select(2) in a loop to periodically (each
# second) monitor whether the subprocess is still running.
end_time = None if timeout is None else time.monotonic() + timeout
while True:
if end_time is None:
select_timeout = MIN_READ_WAIT
else:
select_timeout = min(MIN_READ_WAIT, end_time - time.monotonic())
if select_timeout <= 0:
> raise TimeoutError()
E TimeoutError
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/subprocess.py:81: TimeoutError
________________________________________________________________ test_hardware_platform[x86] _________________________________________________________________
architecte = 'x86'
@pytest.mark.parametrize("architecte",[HARDWARE_PLATFORMS[0],HARDWARE_PLATFORMS[1]])
def test_hardware_platform(architecte):
> with tbot.ctx.request(tbot.role.BoardLinux) as lnx:
test_cases/test_connectivity.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/board.py:168: in from_context
b = cx.enter_context(ctx.request(tbot.role.Board, exclusive=True))
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/connector/common.py:128: in from_context
m = cx.enter_context(cls(lh)) # type: ignore
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/local/lib/python3.8/dist-packages/tbot/machine/machine.py:158: in __enter__
self.ch = self._cx.enter_context(self._connect())
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/connector/common.py:133: in _connect
with self.host.clone() as cloned, self.connect(cloned) as ch:
config/serial_local_config.py:45: in connect
ch.read_until_prompt(prompt=Device.login__prompt, timeout = 5)
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:909: in read_until_prompt
for new in self.read_iter(timeout=timeout):
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:420: in read_iter
new = self._c.read(max_read, timeout_remaining)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tbot.machine.channel.subprocess.SubprocessChannelIO object at 0x7f7bcdc526c0>, n = 4096, timeout = 4.984200841994607
def read(self, n: int, timeout: typing.Optional[float] = None) -> bytes:
if not self.closed:
# If the process is still running, wait for one byte or the timeout
# to arrive. We run select(2) in a loop to periodically (each
# second) monitor whether the subprocess is still running.
end_time = None if timeout is None else time.monotonic() + timeout
while True:
if end_time is None:
select_timeout = MIN_READ_WAIT
else:
select_timeout = min(MIN_READ_WAIT, end_time - time.monotonic())
if select_timeout <= 0:
> raise TimeoutError()
E TimeoutError
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/subprocess.py:81: TimeoutError
---------------------- Generated html report: file:///home/adnanelhammoudi/Documents/system-test/report.html ----------------------
================================================================== short test summary info ===================================================================
FAILED test_cases/test_connectivity.py::test_hardware_platform[x86_64] - TimeoutError
FAILED test_cases/test_connectivity.py::test_hardware_platform[x86] - TimeoutError
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/subprocess.py:83: KeyboardInterrupt
(to show a full traceback on KeyboardInterrupt use --full-trace)
================================================================ 2 failed in 96.96s (0:01:36) ================================================================
adnanelhammoudi@DG-STATION22:~/Documents/system-test$ python3 -m pytest -vvs --tbot-config config.serial_local_config --html=report.html
==================================================================== test session starts =====================================================================
platform linux -- Python 3.8.10, pytest-7.3.1, pluggy-1.0.0 -- /usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.8.10', 'Platform': 'Linux-5.15.0-91-generic-x86_64-with-glibc2.29', 'Packages': {'pytest': '7.3.1', 'pluggy': '1.0.0'}, 'Plugins': {'metadata': '3.0.0', 'html': '4.1.1'}}
rootdir: /home/adnanelhammoudi/Documents/system-test
plugins: metadata-3.0.0, html-4.1.1
collected 3 items
test_cases/test_connectivity.py::test_hardware_platform[x86_64] │ ├─[local] picocom --quiet -b 115200 -r -l /dev/ttyUSB2
│ ├─LINUX (device-linux)
FAILED
test_cases/test_connectivity.py::test_hardware_platform[x86] │ ├─[local] picocom --quiet -b 115200 -r -l /dev/ttyUSB2
│ ├─LINUX (device-linux)
FAILED
test_cases/test_connectivity.py::test_hardware_compatibility │ ├─[local] picocom --quiet -b 115200 -r -l /dev/ttyUSB2
│ ├─LINUX (device-linux)
FAILED
========================================================================== FAILURES ==========================================================================
_______________________________________________________________ test_hardware_platform[x86_64] _______________________________________________________________
architecte = 'x86_64'
@pytest.mark.parametrize("architecte",[HARDWARE_PLATFORMS[0],HARDWARE_PLATFORMS[1]])
def test_hardware_platform(architecte):
> with tbot.ctx.request(tbot.role.BoardLinux) as lnx:
test_cases/test_connectivity.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/board.py:169: in from_context
m = cx.enter_context(cls(b)) # type: ignore
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/local/lib/python3.8/dist-packages/tbot/machine/machine.py:163: in __enter__
self._cx.enter_context(getattr(cls, "_init_machine")(self))
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/linux.py:150: in _init_machine
self.ch.read_until_prompt(
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:909: in read_until_prompt
for new in self.read_iter(timeout=timeout):
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:420: in read_iter
new = self._c.read(max_read, timeout_remaining)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tbot.machine.channel.subprocess.SubprocessChannelIO object at 0x7f5513f2f840>, n = 4096, timeout = 9.99999977400148
def read(self, n: int, timeout: typing.Optional[float] = None) -> bytes:
if not self.closed:
# If the process is still running, wait for one byte or the timeout
# to arrive. We run select(2) in a loop to periodically (each
# second) monitor whether the subprocess is still running.
end_time = None if timeout is None else time.monotonic() + timeout
while True:
if end_time is None:
select_timeout = MIN_READ_WAIT
else:
select_timeout = min(MIN_READ_WAIT, end_time - time.monotonic())
if select_timeout <= 0:
> raise TimeoutError()
E TimeoutError
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/subprocess.py:81: TimeoutError
________________________________________________________________ test_hardware_platform[x86] _________________________________________________________________
architecte = 'x86'
@pytest.mark.parametrize("architecte",[HARDWARE_PLATFORMS[0],HARDWARE_PLATFORMS[1]])
def test_hardware_platform(architecte):
> with tbot.ctx.request(tbot.role.BoardLinux) as lnx:
test_cases/test_connectivity.py:12:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/board.py:169: in from_context
m = cx.enter_context(cls(b)) # type: ignore
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/local/lib/python3.8/dist-packages/tbot/machine/machine.py:163: in __enter__
self._cx.enter_context(getattr(cls, "_init_machine")(self))
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/linux.py:150: in _init_machine
self.ch.read_until_prompt(
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:909: in read_until_prompt
for new in self.read_iter(timeout=timeout):
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:420: in read_iter
new = self._c.read(max_read, timeout_remaining)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tbot.machine.channel.subprocess.SubprocessChannelIO object at 0x7f5513daa980>, n = 4096, timeout = 9.999999380997906
def read(self, n: int, timeout: typing.Optional[float] = None) -> bytes:
if not self.closed:
# If the process is still running, wait for one byte or the timeout
# to arrive. We run select(2) in a loop to periodically (each
# second) monitor whether the subprocess is still running.
end_time = None if timeout is None else time.monotonic() + timeout
while True:
if end_time is None:
select_timeout = MIN_READ_WAIT
else:
select_timeout = min(MIN_READ_WAIT, end_time - time.monotonic())
if select_timeout <= 0:
> raise TimeoutError()
E TimeoutError
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/subprocess.py:81: TimeoutError
________________________________________________________________ test_hardware_compatibility _________________________________________________________________
def test_hardware_compatibility():
> with tbot.ctx.request(tbot.role.BoardLinux ) as lnx:
test_cases/test_connectivity.py:21:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/context.py:360: in request
instance.init(context=machine_class.from_context(self))
/usr/local/lib/python3.8/dist-packages/tbot/context.py:53: in init
self._instance = self._cx.enter_context(context)
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/board.py:169: in from_context
m = cx.enter_context(cls(b)) # type: ignore
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/local/lib/python3.8/dist-packages/tbot/machine/machine.py:163: in __enter__
self._cx.enter_context(getattr(cls, "_init_machine")(self))
/usr/lib/python3.8/contextlib.py:425: in enter_context
result = _cm_type.__enter__(cm)
/usr/lib/python3.8/contextlib.py:113: in __enter__
return next(self.gen)
/usr/local/lib/python3.8/dist-packages/tbot/machine/board/linux.py:150: in _init_machine
self.ch.read_until_prompt(
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:909: in read_until_prompt
for new in self.read_iter(timeout=timeout):
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/channel.py:420: in read_iter
new = self._c.read(max_read, timeout_remaining)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <tbot.machine.channel.subprocess.SubprocessChannelIO object at 0x7f5513d48340>, n = 4096, timeout = 9.999999854000635
def read(self, n: int, timeout: typing.Optional[float] = None) -> bytes:
if not self.closed:
# If the process is still running, wait for one byte or the timeout
# to arrive. We run select(2) in a loop to periodically (each
# second) monitor whether the subprocess is still running.
end_time = None if timeout is None else time.monotonic() + timeout
while True:
if end_time is None:
select_timeout = MIN_READ_WAIT
else:
select_timeout = min(MIN_READ_WAIT, end_time - time.monotonic())
if select_timeout <= 0:
> raise TimeoutError()
E TimeoutError
/usr/local/lib/python3.8/dist-packages/tbot/machine/channel/subprocess.py:81: TimeoutError
---------------------- Generated html report: file:///home/adnanelhammoudi/Documents/system-test/report.html ----------------------
================================================================== short test summary info ===================================================================
FAILED test_cases/test_connectivity.py::test_hardware_platform[x86_64] - TimeoutError
FAILED test_cases/test_connectivity.py::test_hardware_platform[x86] - TimeoutError
FAILED test_cases/test_connectivity.py::test_hardware_compatibility - TimeoutError
===================================================================== 3 failed in 31.11s =====================================================================
from tbot.
it works when I have changed login_prompt = "~#"
to login_prompt = ""
, I don't know why !
from tbot.
Hm, login_prompt = ""
looks very wrong. However, please try
login_prompt = "~# "
# ^- notice the space here
from tbot.
I have tried with and without a space "~# " "~#"
, the issue here is the login prompt does not show up when reading the stdout until pressing ENTER,
it hangs on the last log message from the kernel
from tbot.
Please provide some more context. Are you sure there isn't a login prompt somewhere between the kernel log messages during boot? Can you share a bit more of the bootlog maybe?
from tbot.
it has automatic login actually and it runs a script after, but i was trying to catch the console prompt to run the test using software abstract role.
I can't detected it until pressing enter, even manually I have to do so.
I have tried to send enter as control character after creating the channel directly in the physical board role but it does not works.
from tbot.
it seems working by passing none to the login prompt since it has automatic login
from tbot.
Related Issues (20)
- newbot CLI cannot generate log files
- Continuously print console to stdout
- Early load config when integrating tbot into pytest HOT 6
- Memory leak in SubprocessChannelIO HOT 3
- Processes not being terminated after SSH connection HOT 6
- Display SSH connection errors
- Timeout when waiting for a temination of a subprocess is hardcoded HOT 3
- Weird power cycle recursion HOT 3
- Possible bug when auto login is used on the device HOT 3
- test/py test-framework hangs on some tests HOT 2
- shutil error while copying( fifo_console_send, fifo_console_recv, fifo_commands) in py/tests/test_cleanup_build.py HOT 6
- test/py wrapper should support out-of-tree U-Boot builds
- Send arbitrary commands via uboot console HOT 2
- Unable to retrieve the value of crc32 command in uboot with exec0. HOT 2
- inconsistency with env attribute behavior HOT 1
- running a tool that requires sudo permission HOT 1
- Test case with picocom channel fails with "some subprocess(es) did not stop" HOT 5
- A more general newbot flag/parameter (eg. --flag foo=bar) HOT 1
- Recommended way to handle multiple boards HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tbot.