diff options
| author | Hermes Agent <hermes@localhost> | 2026-08-12 05:29:13 +0000 |
|---|---|---|
| committer | Hermes Agent <hermes@localhost> | 2026-08-12 05:29:13 +0000 |
| commit | ca3bb8ede742911a26256b70e5f135d9668c44fb (patch) | |
| tree | 3a5b0ea3c80169cd3e36550097c65305aab4c7ce /tests/initramfs.rs | |
| parent | 36d844cb23d5bfbc01874c71ec625892f2e6de67 (diff) | |
Reject non-regular RT kernel candidates
Diffstat (limited to 'tests/initramfs.rs')
| -rw-r--r-- | tests/initramfs.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/initramfs.rs b/tests/initramfs.rs index b15c54f..f5a7b02 100644 --- a/tests/initramfs.rs +++ b/tests/initramfs.rs @@ -1,4 +1,5 @@ use std::fs; +use std::os::unix::fs::symlink; use std::path::Path; use alt_controller_image::initramfs::{ @@ -40,6 +41,20 @@ fn diagnoses_missing_or_ambiguous_rt_kernels() { } #[test] +fn kernel_discovery_ignores_non_regular_vmlinuz_entries() { + let rootfs = tempdir().expect("rootfs directory"); + let boot = rootfs.path().join("boot"); + fs::create_dir(&boot).expect("boot directory"); + fs::create_dir(boot.join("vmlinuz-6.12-rt-directory")).expect("misleading RT directory"); + symlink("/not-a-kernel", boot.join("vmlinuz-6.12-rt-symlink")).expect("misleading RT symlink"); + fs::write(boot.join("vmlinuz-6.12-rt-real"), "kernel").expect("RT kernel"); + + let kernel = KernelVersion::discover_rt(rootfs.path()).expect("discover regular RT kernel"); + + assert_eq!(kernel.as_str(), "6.12-rt-real"); +} + +#[test] fn make_initrd_adapter_uses_typed_chroot_arguments_and_records_output_digest() { let rootfs = tempdir().expect("rootfs directory"); fs::create_dir(rootfs.path().join("boot")).expect("boot directory"); |