This actually tests multiple things:
- LoadFile and LoadFile2 wrappers work
- (un)install_protocol_interface works
- how our API is suited to create a custom implementation of an existing
protocol definition
- The workflow used in Linux loaders to enable the Linux EFI stub to load
the initrd via the LOAD_FILE2 protocol.
Further what I'm doing in this test, is already deployed in the
wild: b7f68a50e6/rust/uefi/linux-bootloader/src/linux_loader.rs (L142)
When we run this test, only the EBC arch provides debug support. The EBC
intepreter was removed from the edk2 ARM virtualization package, so the test
won't work on aarch64 now: f4213fed34
Add an `unstable` option to `uefi-test-runner` that controls whether the
`unstable` feature of the `uefi` crate is enabled. Also add a separate CI job so
that we test both with and without the unstable feature.
This change is a necessary prereq for testing on stable, since we can't
unconditionally enable unstable features there.
Add a feature flag to control whether the test is enabled. Enable it unless the
`--disable-network` arg is present. Making the test fail instead of warn makes
it easier to catch accidental breakage.
Rather than a CI flag that did several things, add flags that enable
specific tests. Specifically, `multi_processor`, `tpm_v1`, and
`tpm_v2`. These three features control whether the corresponding test is
enabled, and nothing else.
This fixes an issue on Windows where the TPM tests were failing. We had
those tests expect to always find a TPM if the CI feature was enabled,
but we were also always enabling the CI feature on Windows in order to
disable the multi-processing tests, due to KVM not being available.
This all becomes a lot simpler by just having explicit flags for each
test.
This commit adds new functionality behind the `unsafe` feature that enhances some
existing functions with `allocator_api`-flavored allocators. Existing code will work
with and without the unstable feature.
To prevent confusion, this renames the `alloc` crate feature to
`global_allocator` and the `exts` feature to `alloc` to match the
conventions of the ecosystem.
- Can now validate screenshots of QEMU against a reference file during tests
- This allows unattended testing of the GOP
- Moved "qemu-f4-exit" into a more general "qemu" feature
- Enabled communication with QEMU's monitor in the test runner
- Removed stalls from unattended tests
This PR submitted by @HadrienG2 makes QEMU exit with an error code when a panic happens. This is done by using the ISA debug port.
Should help with running tests automatically.