u-boot/test/py
Simon Glass bf89a8f1fc test: Introduce the concept of a role
In Labgrid there is the concept of a 'role', which is similar to the
U-Boot board ID in U-Boot's pytest subsystem.

The role indicates both the target and information about the U-Boot
build to use. It can also provide any amount of other configuration.
The information is obtained using the 'labgrid-client query' operation.

Using this role, all required configuration for the board is stored
within the Labgrid environment, with pytest simply querying it. This
allows connecting to boards using an interactive console, something that
isn't possible without some kind of mapping. It also means that we don't
need to replicate the pytest functionality in tbot, since Labgrid can
handle the console and kick off builds as needed.

Make use of this in tests, so that only the role is required in gitlab
and other situations. The board type and other things can be queried
as needed.

Use a new 'u-boot-test-getrole' script to obtain the requested
information.

With this it is possible to run lab tests in gitlab with just a single
'ROLE' variable for each board.

Note that, without this feature:
- interactive use of boards with Labgrid-sjg would require repeating the
  id/board in a separate configuration file
- Gitlab yaml file would need to specify both the id and board

This feature is entirely optional, however, with the code gracefully
falling back to using a separate ID and board.

Link: https://tbot.tools

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 test/py: Implement pytest infrastructure 2016-01-20 19:06:23 -07:00
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: Allow connecting to a running board 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