[Concept,00/16] test: pxe: Add some decent tests for the PXE/extlinux parser

Message ID 20260109015323.3411528-1-sjg@u-boot.org
Headers
Series test: pxe: Add some decent tests for the PXE/extlinux parser |

Message

Simon Glass Jan. 9, 2026, 1:53 a.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

This series adds unit tests and Python test wrappers for the
PXE/extlinux configuration parser and associated logic.

- Basic parsing of extlinux.conf files and label properties
- The 'say' keyword for printing messages during parsing
- Include directives and nested includes (up to MAX_NEST_LEVEL)
- The sysboot command for booting via extlinux.conf
- fdtdir path resolution using environment variables
- FDT overlay loading and error handling
- Helper functions (pxe_get_file_size, format_mac_pxe, get_pxelinux_path)
- The pxe_timeout environment variable for menu timeout override
- ipappend functionality for IP and MAC address appending
- FDT fallback logic extraction
- The pxe_label_override environment variable
- LMB address allocation when no address env vars are set

The tests use the usual hybrid approach: a Python fixtures to create
filesystem images with extlinux.conf files and a C unit-test to perform
the actual parsing and verification. This allows testing the parser APIs
directly without needing to boot a real kernel.


Simon Glass (16):
  buildman: Fix f-string in the delta column header
  test: pxe: Add unit tests for PXE/extlinux parser
  test: pxe: Add a test for the 'say' keyword
  boot: pxe: Stop after first boot attempt on sandbox
  test: pxe: Test include directive
  test: pxe: Add a test for nested include
  boot: pxe: Add a test for the sysboot command
  boot: pxe: Add a test for fdtdir path-resolution
  boot: pxe: Add a test for FDT error-handling
  test: pxe: Add a few tests for pxe functions
  test: pxe: Add a note about ontimeout keyword testing
  boot: pxe: Add a pxe_timeout env variable for menu timeout
  test: pxe: Add a test for the ipappend functionality
  boot: pxe: Extract FDT fallback logic and add test
  test: pxe: Add test for tpxe_label_override
  test: pxe: Add test for the address-allocation path

 boot/pxe_utils.c                 |  70 ++-
 include/pxe_utils.h              |  14 +
 test/boot/Makefile               |   1 +
 test/boot/pxe.c                  | 924 +++++++++++++++++++++++++++++++
 test/cmd_ut.c                    |   2 +
 test/py/tests/test_pxe_parser.py | 450 +++++++++++++++
 tools/buildman/builder.py        |   2 +-
 7 files changed, 1437 insertions(+), 26 deletions(-)
 create mode 100644 test/boot/pxe.c
 create mode 100644 test/py/tests/test_pxe_parser.py