summaryrefslogtreecommitdiff
path: root/tests/initramfs.rs
diff options
context:
space:
mode:
authorHermes Agent <hermes@localhost>2026-08-12 05:29:13 +0000
committerHermes Agent <hermes@localhost>2026-08-12 05:29:13 +0000
commitca3bb8ede742911a26256b70e5f135d9668c44fb (patch)
tree3a5b0ea3c80169cd3e36550097c65305aab4c7ce /tests/initramfs.rs
parent36d844cb23d5bfbc01874c71ec625892f2e6de67 (diff)
Reject non-regular RT kernel candidates
Diffstat (limited to 'tests/initramfs.rs')
-rw-r--r--tests/initramfs.rs15
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");