From dfe4c2cad0e35996136f320b675265ce223bb326 Mon Sep 17 00:00:00 2001 From: Ryan Geary Date: Tue, 17 Mar 2020 13:26:35 -0400 Subject: Reassign exit codes and clean up e2e_test 0 - Success 1 - Argument parsing error 2 - Regex compilation error --- src/config.rs | 8 ++++---- test/e2e_test.sh | 33 +++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/config.rs b/src/config.rs index 78771cf..c12fc11 100644 --- a/src/config.rs +++ b/src/config.rs @@ -32,19 +32,19 @@ impl Config { }) { Ok(r) => r, Err(e) => { - // Exit code of 1 means failed to compile field_separator regex + // Exit code of 2 means failed to compile field_separator regex match e { regex::Error::Syntax(e) => { eprintln!("Syntax error compiling regular expression: {}", e); - process::exit(1); + process::exit(2); } regex::Error::CompiledTooBig(e) => { eprintln!("Compiled regular expression too big: compiled size cannot exceed {} bytes", e); - process::exit(1); + process::exit(2); } _ => { eprintln!("Error compiling regular expression: {}", e); - process::exit(1); + process::exit(2); } } } diff --git a/test/e2e_test.sh b/test/e2e_test.sh index 95207f8..e98fa49 100755 --- a/test/e2e_test.sh +++ b/test/e2e_test.sh @@ -4,30 +4,35 @@ set -e test_dir="test" orig_dir="$(pwd)" cd "$(git rev-parse --show-toplevel)" -cargo build # basic functionality -diff -w <(cargo run -- 0:1 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_0:1.txt") -diff -w <(cargo run -- 0 3 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_0_3.txt") -diff -w <(cargo run -- :1 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_:1.txt") -diff -w <(cargo run -- 9 3 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_9_3.txt") -diff -w <(cargo run -- 9 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_9.txt") -diff -w <(cargo run -- 12 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_12.txt") -diff -w <(cargo run -- 4:2 -i ${test_dir}/lorem.txt) <(cat "${test_dir}/choose_4:2.txt") +diff -w <(cargo run -- 0:1 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_0:1.txt") +diff -w <(cargo run -- 0 3 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_0_3.txt") +diff -w <(cargo run -- :1 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_:1.txt") +diff -w <(cargo run -- 9 3 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_9_3.txt") +diff -w <(cargo run -- 9 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_9.txt") +diff -w <(cargo run -- 12 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_12.txt") +diff -w <(cargo run -- 4:2 -i ${test_dir}/lorem.txt 2>/dev/null) <(cat "${test_dir}/choose_4:2.txt") # add tests for different delimiters # add tests using piping set +e # test failure to parse arguments -cargo run -- d:i -i ${test_dir}/lorem.txt >/dev/null +cargo run -- d:i -i ${test_dir}/lorem.txt >&/dev/null r=$? -if [ $r -ne 2 ]; then - echo "Failed to return error code 2 on failure to parse arguments" -else - echo "Success" +if [ $r -ne 1 ]; then + echo "Failed to return 1 on failure to parse arguments" + exit 1 fi -cargo test +cargo run -- 3 -f "[[]" -i ${test_dir}/lorem.txt >&/dev/null +r=$? +if [ $r -ne 2 ]; then + echo "Failed to return 2 on regex compile error" + exit 1 +fi cd $orig_dir + +printf "\033[1;32mAll tests passed\033[0m\n" -- cgit v1.2.3