guest_os_booting: Fix aarch64 test failures#6903
Open
hholoubk wants to merge 3 commits into
Open
Conversation
The loadparm_override variant uses per-device boot order with the s390-specific loadparm attribute, but was not restricted to s390. This caused it to combine with by_ovmf (aarch64/q35) and by_seabios (x86_64), where it fails because per-device boot elements conflict with os/boot elements set by the firmware. Add "only s390-virtio" to match the pattern used by all other loadparm tests in the codebase (boot_with_multiple_boot_order, virsh_boot). Assisted-by: Cursor AI ~80% Signed-off-by: hholoubk <hholoubk@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
The customize_loader test variant had two issues: 1. The custom_loader_path was hardcoded to the x86_64 edk2 directory (/usr/share/edk2/ovmf/) which does not exist on aarch64, causing shutil.copy2() to fail with OSError. 2. The loader_dict referenced the original loader_path instead of the custom_loader_path, so the VM was never actually booting with the custom loader. The copy was also done after prepare_os_xml, but must happen before so the file exists when the VM is defined. Fix by adding an aarch64 override for custom_loader_path, updating loader_dict to use custom_loader_path, and reordering the copy to happen before VM XML preparation. Assisted-by: Cursor AI ~80% Reference: RHEL-81731, VIRT-296930 Signed-off-by: hholoubk <hholoubk@redhat.com> Made-with: Cursor
The multi_disks_bootable test appends '-ovmf' to the disk image URL when firmware_type is "ovmf". This is needed on x86_64 where separate seabios and OVMF guest images exist, but on aarch64 all guest images are already OVMF-based. The suffixed image URL does not exist on aarch64, causing download failure. Restrict the -ovmf suffix to x86_64 only. Assisted-by: Cursor AI ~80% Signed-off-by: hholoubk <hholoubk@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
Caution Review failedAn error occurred during the review process. Please try again later. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix three guest OS booting test failures on aarch64:
s390-virtioonly. The test uses s390-specificloadparmboot order, which conflicts with OVMF/SeaBIOS firmware boot elements on other architectures.custom_loader_path, use it inloader_dict, and copy the custom loader before VM XML preparation so the file exists when the VM is defined.-ovmfimage URL suffix on aarch64; guest images are already OVMF-based and the suffixed URL does not exist.Reference: RHEL-81731, VIRT-296930
Test plan
guest_os_booting.boot_menuon aarch64 —loadparm_overridevariant should be skippedguest_os_booting.ovmf_firmware.ovmf_loaderon aarch64 —customize_loadervariant should passguest_os_booting.boot_order.boot_from_disk_deviceon aarch64 — disk image download should succeed