diff --git a/src/report/display.rs b/src/report/display.rs index 3f0d5f8a..1f34a804 100644 --- a/src/report/display.rs +++ b/src/report/display.rs @@ -43,8 +43,10 @@ impl ResultName for BrokenReason { match self { BrokenReason::Unknown => "broken crate".into(), BrokenReason::CargoToml => "broken Cargo.toml".into(), + BrokenReason::BrokenDependencies => "broken deps".into(), BrokenReason::Yanked => "deps yanked".into(), BrokenReason::MissingGitRepository => "missing repo".into(), + BrokenReason::InvalidCargoLock => "invalid Cargo.lock".into(), BrokenReason::MissingDependencies => "missing deps".into(), } } diff --git a/src/results/mod.rs b/src/results/mod.rs index 90dc9258..5a6b2a60 100644 --- a/src/results/mod.rs +++ b/src/results/mod.rs @@ -299,8 +299,10 @@ impl FailureReason { string_enum!(pub enum BrokenReason { Unknown => "unknown", CargoToml => "cargo-toml", + BrokenDependencies => "broken-deps", Yanked => "yanked", MissingDependencies => "missing-deps", + InvalidCargoLock => "invalid-cargo-lock", MissingGitRepository => "missing-git-repository", }); @@ -332,7 +334,8 @@ mod tests { #[test] fn test_test_result_parsing() { use super::{ - FailureReason::*, + BrokenReason::{self, *}, + FailureReason::{self, *}, TestResult::{self, *}, }; @@ -359,12 +362,19 @@ mod tests { //"build-fail:depends-on()" => BuildFail(DependsOn(vec!["001"])), test_from_str! { - "prepare-fail:unknown" => PrepareFail(Unknown), + "prepare-fail:unknown" => PrepareFail(FailureReason::Unknown), "prepare-fail:oom" => PrepareFail(OOM), "prepare-fail:docker" => PrepareFail(Docker), "prepare-fail:no-space" => PrepareFail(NoSpace), "prepare-fail:timeout" => PrepareFail(Timeout), - "build-fail:unknown" => BuildFail(Unknown), + "broken:unknown" => BrokenCrate(BrokenReason::Unknown), + "broken:cargo-toml" => BrokenCrate(CargoToml), + "broken:broken-deps" => BrokenCrate(BrokenDependencies), + "broken:yanked" => BrokenCrate(Yanked), + "broken:missing-deps" => BrokenCrate(MissingDependencies), + "broken:invalid-cargo-lock" => BrokenCrate(InvalidCargoLock), + "broken:missing-git-repository" => BrokenCrate(MissingGitRepository), + "build-fail:unknown" => BuildFail(FailureReason::Unknown), "build-fail:docker" => BuildFail(Docker), "build-fail:compiler-error(001, 002)" => BuildFail(CompilerError(btreeset!["001".parse().unwrap(), "002".parse().unwrap()])), "build-fail:compiler-error(001)" => BuildFail(CompilerError(btreeset!["001".parse().unwrap()])), @@ -380,7 +390,7 @@ mod tests { // Backward compatibility assert_eq!( TestResult::from_str("build-fail").unwrap(), - BuildFail(Unknown) + BuildFail(FailureReason::Unknown) ); assert!(TestResult::from_str("error:oom").is_err()); assert!(TestResult::from_str("build-fail:pleasedonotaddthis").is_err()); diff --git a/src/runner/test.rs b/src/runner/test.rs index 98d80712..18a5e8ae 100644 --- a/src/runner/test.rs +++ b/src/runner/test.rs @@ -56,12 +56,18 @@ pub(super) fn detect_broken(res: Result) -> Result { PrepareError::InvalidCargoTomlSyntax => { TestResult::BrokenCrate(BrokenReason::CargoToml) } + PrepareError::BrokenDependencies(_) => { + TestResult::BrokenCrate(BrokenReason::BrokenDependencies) + } PrepareError::YankedDependencies(_) => { TestResult::BrokenCrate(BrokenReason::Yanked) } PrepareError::MissingDependencies(_) => { TestResult::BrokenCrate(BrokenReason::MissingDependencies) } + PrepareError::InvalidCargoLock(_) => { + TestResult::BrokenCrate(BrokenReason::InvalidCargoLock) + } PrepareError::PrivateGitRepository => { TestResult::BrokenCrate(BrokenReason::MissingGitRepository) }