uefi-rs/uefi-test-runner
Ren Trieu 111fa51231
uefi: Implementing var(), vars(), and set_var() for shell interface protocol
The var() and vars() functions wrap the UEFI get_env() implementation to
retrieve a single and multiple environment variables respectively.
The set_var() function wraps the UEFI set_env() variable to set the value
of an environment variable.

Co-authored-by: Philipp Schuster <phip1611@gmail.com>
2025-11-07 09:54:30 -08:00
..
examples test-runner: Add example of using the Input protocol 2025-09-03 14:20:12 -04:00
https Add CA trust database to the repo. 2025-04-18 12:12:23 -04:00
screenshots Validate GOP test output with screenshots (#37) 2018-09-23 19:17:13 +02:00
src uefi: Implementing var(), vars(), and set_var() for shell interface protocol 2025-11-07 09:54:30 -08:00
tftp Add PXE Base Code protocol (#417) 2022-05-07 18:13:09 +03:00
.gitignore Add support for AArch64 to uefi-test-runner 2020-07-03 16:25:40 +03:00
Cargo.toml uefi-test-runner: SNP: use smoltcp to UDP packet 2025-05-31 19:59:10 +02:00
README.md readme: Replace BUILDING.md link with tutorial link 2022-11-27 14:24:18 -05:00

uefi-test-runner

This package is a UEFI application for running tests. It is intended to be run in a specially-configured QEMU VM. This allows us to test the parts of the uefi package that depend on a UEFI environment, such as various boot services and protocols.

Requirements

  • QEMU: the most recent version of QEMU is recommended.
  • Python 3: at least version 3.6 is required.
  • OVMF: You need to extract the firmware files into the uefi-test-runner directory.
    • For x86_64: OVMF_CODE.fd and OVMF_VARS.fd
    • For AArch64: QEMU_EFI-pflash.raw and vars-template-pflash.raw Alternatively, install OVMF using your distro's package manager and change the paths in the script file. Note: if your distro's OVMF version is too old / does not provide these files, you can download Gerd Hoffmann's builds and extract them in the local directory.

Build and run in QEMU

Use cargo xtask run to build uefi-test-runner and run it in QEMU. See the top-level README for more details of cargo xtask.