u-boot/test/py
Simon Glass 8308a5eed6 test: Introduce lab mode
There is quite a bit of code in pytest to try to start up U-Boot on a
board, with timeouts, expects, etc.

This is tedious to maintain and is peripheral to the test system's
purpose. It seems better to put this logic in the lab itself, where is
can provide such support.

With Labgrid we can use the UbootStrategy class to get the board into a
useful state, however it needs to do it. Then it can report to pytest
by writing a suitable string along with the U-Boot version it detected.

Add support for detecting 'lab mode' and simply assume that all is well
in that case. Collect the version string when Labgrid says it is ready.

This is only used with the Labgrid-sjg integration. When Labgrid starts
the UbootStrategy it checks if U_BOOT_SOURCE_DIR is set. If so it emits
a string '{lab mode}' that tells test.py to simply wait for an
indication that the board is ready. All banner-checking is skipped. The
indication comes in the form of another string 'Lab: Board is ready'
which Labgrid sends once the board is sitting at a prompt ready to run
tests. Then test.py emits 'U-Boot is ready' and continues with testing.

Note that Labgrid has the same kind of "check for a string" logic that
is in test.py, except it's not caring about the correct number / order
of banner prints. This checking could be added, however. If something
fails, the complete output is shown, so it is possible to see what went
wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
..
tests test: efi: boot: Set up an image suitable for EFI testing 2024-11-09 10:01:47 +01:00
.gitignore
conftest.py test: Introduce the concept of a role 2024-11-13 12:01:35 -06:00
multiplexed_log.css SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
multiplexed_log.py test: Add a way to set the environment for a pytest 2023-02-14 09:43:27 -07:00
pytest.ini test/py: Allow tests to be marked single-threaded only 2022-09-12 18:06:36 -04:00
requirements.txt pytest: requirements.txt: Resync with the rest of the project 2024-08-21 08:25:23 -06:00
test.py test: remove unused import from pkg_resources 2024-04-12 08:53:31 -06:00
u_boot_console_base.py test: Introduce lab mode 2024-11-13 12:01:35 -06:00
u_boot_console_exec_attach.py test: Allow connecting to a running board 2024-11-13 12:01:35 -06:00
u_boot_console_sandbox.py test: Decode exceptions only with sandbox 2024-07-04 09:25:21 -06:00
u_boot_spawn.py test: Detect dead connections 2024-10-15 10:24:27 -06:00
u_boot_utils.py test: Add a way to set the environment for a pytest 2023-02-14 09:43:27 -07:00