diff options
Diffstat (limited to 'tests')
| -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"); |