Better error handling in run_intermediate_command

This commit is contained in:
David Peter authored and David Peter committed 2022-02-22 09:07:40 +01:00
1 parent 662d5ca9ac
commit 8c5ae87ca2
2 files changed
+41 -7

No files matched your search

+5 -7
View File
@@ -24,7 +24,7 @@ use crate::util::exit_code::extract_exit_code;
use crate::util::min_max::{max, min};
use crate::util::units::Second;
use anyhow::{bail, Result};
use anyhow::{anyhow, bail, Result};
/////////////// TODO: refactor the following part
@@ -241,17 +241,15 @@ impl<'a> Scheduler<'a> {
command: &Command<'_>,
error_output: &'static str,
) -> Result<TimingResult> {
let res = time_shell_command(
time_shell_command(
&self.options.shell,
command,
self.options.command_output_policy,
CmdFailureAction::RaiseError,
None,
);
if res.is_err() {
bail!(error_output);
}
return res.map(|r| r.0);
)
.map(|r| r.0)
.map_err(|_| anyhow!(error_output))
}
/// Run the command specified by `--setup`.
+36
View File
@@ -83,6 +83,42 @@ fn fails_for_unknown_command() {
));
}
#[test]
fn fails_for_unknown_setup_command() {
hyperfine()
.arg("--setup=some-nonexisting-program-b5d9574198b7e4b12a71fa4747c0a577")
.arg("echo test")
.assert()
.failure()
.stderr(predicate::str::contains(
"The setup command terminated with a non-zero exit code.",
));
}
#[test]
fn fails_for_unknown_cleanup_command() {
hyperfine()
.arg("--cleanup=some-nonexisting-program-b5d9574198b7e4b12a71fa4747c0a577")
.arg("echo test")
.assert()
.failure()
.stderr(predicate::str::contains(
"The cleanup command terminated with a non-zero exit code.",
));
}
#[test]
fn fails_for_unknown_prepare_command() {
hyperfine()
.arg("--prepare=some-nonexisting-program-b5d9574198b7e4b12a71fa4747c0a577")
.arg("echo test")
.assert()
.failure()
.stderr(predicate::str::contains(
"The preparation command terminated with a non-zero exit code.",
));
}
#[cfg(unix)]
#[test]
fn can_run_failing_commands_with_ignore_failure_option() {