mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-30 20:47:46 +00:00
tests/common: add util_name+bin_path to UCommand
This commit is contained in:
parent
fc300dda24
commit
d4ca4371d7
1 changed files with 20 additions and 6 deletions
|
@ -788,7 +788,7 @@ impl TestScenario {
|
||||||
/// Returns builder for invoking any system command. Paths given are treated
|
/// Returns builder for invoking any system command. Paths given are treated
|
||||||
/// relative to the environment's unique temporary test directory.
|
/// relative to the environment's unique temporary test directory.
|
||||||
pub fn cmd<S: AsRef<OsStr>>(&self, bin: S) -> UCommand {
|
pub fn cmd<S: AsRef<OsStr>>(&self, bin: S) -> UCommand {
|
||||||
UCommand::new_from_tmp(bin, self.tmpd.clone(), true)
|
UCommand::new_from_tmp::<S, S>(bin, None, self.tmpd.clone(), true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns builder for invoking any uutils command. Paths given are treated
|
/// Returns builder for invoking any uutils command. Paths given are treated
|
||||||
|
@ -812,7 +812,7 @@ impl TestScenario {
|
||||||
/// Differs from the builder returned by `cmd` in that `cmd_keepenv` does not call
|
/// Differs from the builder returned by `cmd` in that `cmd_keepenv` does not call
|
||||||
/// `Command::env_clear` (Clears the entire environment map for the child process.)
|
/// `Command::env_clear` (Clears the entire environment map for the child process.)
|
||||||
pub fn cmd_keepenv<S: AsRef<OsStr>>(&self, bin: S) -> UCommand {
|
pub fn cmd_keepenv<S: AsRef<OsStr>>(&self, bin: S) -> UCommand {
|
||||||
UCommand::new_from_tmp(bin, self.tmpd.clone(), false)
|
UCommand::new_from_tmp::<S, S>(bin, None, self.tmpd.clone(), false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -826,6 +826,8 @@ impl TestScenario {
|
||||||
pub struct UCommand {
|
pub struct UCommand {
|
||||||
pub raw: Command,
|
pub raw: Command,
|
||||||
comm_string: String,
|
comm_string: String,
|
||||||
|
bin_path: String,
|
||||||
|
util_name: Option<String>,
|
||||||
tmpd: Option<Rc<TempDir>>,
|
tmpd: Option<Rc<TempDir>>,
|
||||||
has_run: bool,
|
has_run: bool,
|
||||||
ignore_stdin_write_error: bool,
|
ignore_stdin_write_error: bool,
|
||||||
|
@ -838,13 +840,16 @@ pub struct UCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UCommand {
|
impl UCommand {
|
||||||
pub fn new<T: AsRef<OsStr>, U: AsRef<OsStr>>(
|
pub fn new<T: AsRef<OsStr>, S: AsRef<OsStr>, U: AsRef<OsStr>>(
|
||||||
bin_path: T,
|
bin_path: T,
|
||||||
|
util_name: Option<S>,
|
||||||
curdir: U,
|
curdir: U,
|
||||||
env_clear: bool,
|
env_clear: bool,
|
||||||
) -> UCommand {
|
) -> UCommand {
|
||||||
let bin_path = bin_path.as_ref();
|
let bin_path = bin_path.as_ref();
|
||||||
UCommand {
|
let util_name = util_name.as_ref().map(|un| un.as_ref());
|
||||||
|
|
||||||
|
let mut ucmd = UCommand {
|
||||||
tmpd: None,
|
tmpd: None,
|
||||||
has_run: false,
|
has_run: false,
|
||||||
raw: {
|
raw: {
|
||||||
|
@ -869,6 +874,8 @@ impl UCommand {
|
||||||
cmd
|
cmd
|
||||||
},
|
},
|
||||||
comm_string: String::from(bin_path.to_str().unwrap()),
|
comm_string: String::from(bin_path.to_str().unwrap()),
|
||||||
|
bin_path: bin_path.to_str().unwrap().to_string(),
|
||||||
|
util_name: util_name.map(|un| un.to_str().unwrap().to_string()),
|
||||||
ignore_stdin_write_error: false,
|
ignore_stdin_write_error: false,
|
||||||
bytes_into_stdin: None,
|
bytes_into_stdin: None,
|
||||||
stdin: None,
|
stdin: None,
|
||||||
|
@ -876,16 +883,23 @@ impl UCommand {
|
||||||
stderr: None,
|
stderr: None,
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
limits: vec![],
|
limits: vec![],
|
||||||
}
|
};
|
||||||
|
|
||||||
|
if let Some(un) = util_name {
|
||||||
|
ucmd.arg(un);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_from_tmp<T: AsRef<OsStr>>(
|
ucmd
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn new_from_tmp<T: AsRef<OsStr>, S: AsRef<OsStr>>(
|
||||||
bin_path: T,
|
bin_path: T,
|
||||||
|
util_name: Option<S>,
|
||||||
tmpd: Rc<TempDir>,
|
tmpd: Rc<TempDir>,
|
||||||
env_clear: bool,
|
env_clear: bool,
|
||||||
) -> UCommand {
|
) -> UCommand {
|
||||||
let tmpd_path_buf = String::from(&(*tmpd.as_ref().path().to_str().unwrap()));
|
let tmpd_path_buf = String::from(&(*tmpd.as_ref().path().to_str().unwrap()));
|
||||||
let mut ucmd: UCommand = UCommand::new(bin_path, tmpd_path_buf, env_clear);
|
let mut ucmd: UCommand = UCommand::new(bin_path, util_name, tmpd_path_buf, env_clear);
|
||||||
ucmd.tmpd = Some(tmpd);
|
ucmd.tmpd = Some(tmpd);
|
||||||
ucmd
|
ucmd
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue