aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@suse.de>2022-02-07 23:04:29 +0100
committerJóhann B. Guðmundsson <johannbg@gmail.com>2022-02-17 19:28:33 +0000
commit80e70f76d92b1a1c8e5cd10a06b70ef3f97d0899 (patch)
treef4f38a0a468d3327f44ed7b3ec070d607205d844
parent5de6e4d56e5206cb47f645ad1cb6d39794048c68 (diff)
downloaddracut-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.rs27
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"));