Date
1 - 1 of 1
OVMF/QEMU shell based unit tests and writing to a virtual disk
Sean
Laszlo and others familiar with QEMU,
I am trying to write automation that boots QEMU/OVMF and then runs EFI applications and those efi applications then use the UEFI shell apis to write back to the disk their state. I am seeing very inconsistent results with sometimes it working fine while other times the disk contents are invalid. If i run multiple tests it seems like the first two work while the 3rd seems to start failing but overall it seems random. Failing means: Disk contents corrupted but present. Disk contents wrong size (short). Files that show written in UEFI shell never show up on host. I am trying to determine if this is a known limitation with QEMU or a bug i need to track down in the unit test code. My setup: This is on a Windows 10 x64 host. I am running current 5.1 version of QEMU. My script creates a folder in the Windows NTFS file system. Copies the EFI executables and startup.nsh files to it. Then starts QEMU with the following additional parameter. -drive file=fat:rw:{VirtualDrive},format=raw,media=disk VirtualDrive is the Windows file path of the said mentioned folder. If interested you should be able to reproduce the results by pulling my branch and/or you can review the above. You can see the operations here: PR: https://github.com/microsoft/mu_tiano_platforms/pull/1 My Branch: https://github.com/spbrogan/mu_tiano_platforms/tree/personal/sebrogan/shellunittests Or if interested you can reproduce it by following steps defined here: https://github.com/spbrogan/mu_tiano_platforms/blob/personal/sebrogan/shellunittests/Platforms/QemuQ35Pkg/Docs/building.md and more details here https://github.com/spbrogan/mu_tiano_platforms/blob/personal/sebrogan/shellunittests/Platforms/QemuQ35Pkg/Plugins/QemuRunner/ReadMe.md After building qemu with the right parameters for your environment you can run <your stuart_build cmd> --flashonly MARK_STARTUP_NSH=TRUE RUN_UNIT_TESTS=TRUE For example in my environment it looks like stuart_build -c Platforms\QemuQ35Pkg\PlatformBuild.py TOOL_CHAIN_TAG=VS2019 --flashonly RUN_UNIT_TESTS=TRUE MAKE_STARTUP_NSH=TRUE Anyway if i recall correctly last year when we talked briefly about automation there was some concern that this would happen. Any information and/or ideas would be greatly appreciated. Thanks Sean |
|