Skip to content

guest_os_booting: Fix aarch64 test failures#6903

Open
hholoubk wants to merge 3 commits into
autotest:masterfrom
hholoubk:fix/guest-os-booting-aarch64-combined
Open

guest_os_booting: Fix aarch64 test failures#6903
hholoubk wants to merge 3 commits into
autotest:masterfrom
hholoubk:fix/guest-os-booting-aarch64-combined

Conversation

@hholoubk

Copy link
Copy Markdown
Contributor

Summary

Fix three guest OS booting test failures on aarch64:

  • bootmenu/loadparm_override: Restrict variant to s390-virtio only. The test uses s390-specific loadparm boot order, which conflicts with OVMF/SeaBIOS firmware boot elements on other architectures.
  • ovmf_loader/customize_loader: Add aarch64 custom_loader_path, use it in loader_dict, and copy the custom loader before VM XML preparation so the file exists when the VM is defined.
  • boot_from_disk_device: Skip -ovmf image URL suffix on aarch64; guest images are already OVMF-based and the suffixed URL does not exist.

Reference: RHEL-81731, VIRT-296930

Test plan

  • Run guest_os_booting.boot_menu on aarch64 — loadparm_override variant should be skipped
  • Run guest_os_booting.ovmf_firmware.ovmf_loader on aarch64 — customize_loader variant should pass
  • Run guest_os_booting.boot_order.boot_from_disk_device on aarch64 — disk image download should succeed
  • Verify x86_64 behavior unchanged for all three tests

hholoubk and others added 3 commits May 4, 2026 10:43
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>
@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant