diff options
author | David Disseldorp <ddiss@suse.de> | 2022-02-07 23:04:29 +0100 |
---|---|---|
committer | Jóhann B. Guðmundsson <johannbg@gmail.com> | 2022-02-17 19:28:33 +0000 |
commit | 80e70f76d92b1a1c8e5cd10a06b70ef3f97d0899 (patch) | |
tree | f4f38a0a468d3327f44ed7b3ec070d607205d844 | |
parent | 5de6e4d56e5206cb47f645ad1cb6d39794048c68 (diff) | |
download | dracut-80e70f76d92b1a1c8e5cd10a06b70ef3f97d0899.tar.gz |
ci(cpio): add TempWorkDir.create_tmp_mknod helper
This will be used for future device major/minor testing. Convert the
current fifo test to use it.
Signed-off-by: David Disseldorp <ddiss@suse.de>
-rw-r--r-- | src/dracut-cpio/src/main.rs | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/dracut-cpio/src/main.rs b/src/dracut-cpio/src/main.rs index 1c622c40..b3cc5144 100644 --- a/src/dracut-cpio/src/main.rs +++ b/src/dracut-cpio/src/main.rs @@ -883,6 +883,25 @@ mod tests { fs::create_dir(name).unwrap(); self.cleanup_dirs.push(PathBuf::from(name)); } + + // execute coreutils mknod NAME TYPE [MAJOR MINOR] + pub fn create_tmp_mknod(&mut self, name: &str, typ: char, + maj_min: Option<(u32, u32)>) { + let t = typ.to_string(); + let proc = match maj_min { + Some(maj_min) => { + let (maj, min) = maj_min; + Command::new("mknod") + .args(&[name, &t, &maj.to_string(), &min.to_string()]) + .spawn() + }, + None => Command::new("mknod").args(&[name, &t]).spawn() + }; + let status = proc.expect("mknod failed to start").wait().unwrap(); + assert!(status.success()); + + self.cleanup_files.push(PathBuf::from(name)); + } } impl Drop for TempWorkDir { @@ -1144,13 +1163,7 @@ mod tests { fn test_archive_fifo() { let mut twd = TempWorkDir::new(); - // mknod [OPTION]... NAME TYPE [MAJOR MINOR] - let mut proc = Command::new("mknod") - .args(&["fifo", "p"]) - .spawn() - .expect("mknod failed to start"); - assert!(proc.wait().unwrap().success()); - twd.cleanup_files.push(PathBuf::from("fifo")); + twd.create_tmp_mknod("fifo", 'p', None); gnu_cpio_create("fifo\n".as_bytes(), "gnu.cpio"); twd.cleanup_files.push(PathBuf::from("gnu.cpio")); |