summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Geary <rtgnj42@gmail.com>2020-03-17 13:26:35 -0400
committerRyan Geary <rtgnj42@gmail.com>2020-03-17 13:26:35 -0400
commitdfe4c2cad0e35996136f320b675265ce223bb326 (patch)
tree55ab8fb2b0e98d58dbe831ad4ac7551c163af1d6
parent5b5fa0ed7ab6a8383dec0d7713e99bab0a175b0f (diff)
Reassign exit codes and clean up e2e_test
0 - Success 1 - Argument parsing error 2 - Regex compilation error
-rw-r--r--src/config.rs8
-rwxr-xr-xtest/e2e_test.sh33
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"