Skip to content

Commit 534d24b

Browse files
committed
try to find a failure reason before falling back to error
1 parent 53fc2ea commit 534d24b

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/runner/test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use rustwide::{Build, PrepareError};
1515
use std::collections::{BTreeSet, HashMap, HashSet};
1616
use std::io::ErrorKind;
1717

18-
fn failure_reason(err: &Error) -> FailureReason {
18+
pub(crate) fn failure_reason(err: &Error) -> FailureReason {
1919
if let Some(reason) = err.downcast_ref::<FailureReason>() {
2020
reason.clone()
2121
} else if let Some(command_error) = err.downcast_ref::<CommandError>() {

src/runner/worker.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::experiments::{Experiment, Mode};
44
use crate::prelude::*;
55
use crate::results::{BrokenReason, TestResult};
66
use crate::runner::tasks::{Task, TaskStep};
7-
use crate::runner::test::detect_broken;
7+
use crate::runner::test::{detect_broken, failure_reason};
88
use crate::runner::OverrideResult;
99
use crate::toolchain::Toolchain;
1010
use crate::utils;
@@ -244,7 +244,10 @@ impl<'a> Worker<'a> {
244244
let mut result = if self.config.is_broken(&krate) {
245245
TestResult::BrokenCrate(BrokenReason::Unknown)
246246
} else {
247-
TestResult::Error
247+
match failure_reason(&err) {
248+
crate::results::FailureReason::Unknown => TestResult::Error,
249+
reason => TestResult::BuildFail(reason),
250+
}
248251
};
249252

250253
if let Some(OverrideResult(res)) = err.downcast_ref() {

0 commit comments

Comments
 (0)