From 6d8ef48dad886aa38ada6b0273a901197b8c55c5 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Sun, 27 Jan 2019 09:53:49 -0800 Subject: [PATCH] Make test subcommand exit 1 if tests fail --- cli/src/main.rs | 4 +++- cli/src/test.rs | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index aaf45cb1..0bf4f01a 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -121,7 +121,9 @@ fn run() -> error::Result<()> { let filter = matches.value_of("filter"); let corpus_path = current_dir.join("corpus"); if let Some(language) = loader.language_at_path(¤t_dir)? { - test::run_tests_at_path(language, &corpus_path, debug, debug_graph, filter)?; + if !test::run_tests_at_path(language, &corpus_path, debug, debug_graph, filter)? { + exit(1); + } } else { eprintln!("No language found"); } diff --git a/cli/src/test.rs b/cli/src/test.rs index b8b78b8f..d6a2a7ce 100644 --- a/cli/src/test.rs +++ b/cli/src/test.rs @@ -48,7 +48,7 @@ pub fn run_tests_at_path( debug: bool, debug_graph: bool, filter: Option<&str>, -) -> Result<()> { +) -> Result { let test_entry = parse_tests(path)?; let mut _log_session = None; let mut parser = Parser::new(); @@ -86,9 +86,10 @@ pub fn run_tests_at_path( println!("\n {}. {}:", i + 1, name); print_diff(actual, expected); } + Ok(true) + } else { + Ok(false) } - - Ok(()) } pub fn print_diff_key() {