testsuite: add tests for cut and grep; slight improvements to infrastructure
No binary (build failed)
—
(log yok)
| @@ -0,0 +1,19 @@ | |
| + | #!/bin/sh |
| + | |
| + | # grep tests. |
| + | # Copyright 2007 by Denys Vlasenko <[email protected]> |
| + | # Licensed under GPL v2, see file LICENSE for details. |
| + | |
| + | . testing.sh |
| + | |
| + | # testing "test name" "options" "expected result" "file input" "stdin" |
| + | # file input will be file called "input" |
| + | # test can create a file "actual" instead of writing to stdout |
| + | |
| + | testing "cut '-' (stdin) and multi file handling" \ |
| + | "cut -d' ' -f2 - input" \ |
| + | "over\n""quick\n" \ |
| + | "the quick brown fox\n" \ |
| + | "jumps over the lazy dog\n" \ |
| + | |
| + | exit $FAILCOUNT |
| @@ -29,9 +29,10 @@ testing "grep input (specify file)" "grep two input" "two\n" \ | |
| testing "grep (no newline at EOL)" "grep bug" "bug" "bug" "" | |
| - | # Note that this assumes actual is empty. |
| - | testing "grep input actual (two files)" "grep two input actual 2> /dev/null" \ |
| + | >empty |
| + | testing "grep two files" "grep two input empty 2>/dev/null" \ |
| "input:two\n" "one\ntwo\nthree\nthree\nthree\n" "" | |
| + | rm empty |
| testing "grep - infile (specify stdin and file)" "grep two - input" \ | |
| "(standard input):two\ninput:two\n" "one\ntwo\nthree\n" \ | |
| @@ -73,6 +74,8 @@ testing "grep matches NUL" "grep . input > /dev/null 2>&1 ; echo \$?" \ | |
| # -e regex | |
| testing "grep handles multiple regexps" "grep -e one -e two input ; echo \$?" \ | |
| "one\ntwo\n0\n" "one\ntwo\n" "" | |
| + | testing "grep -F handles multiple expessions" "grep -F -e one -e two input ; echo \$?" \ |
| + | "one\ntwo\n0\n" "one\ntwo\n" "" |
| optional FEATURE_GREP_EGREP_ALIAS | |
| testing "grep -E supports extended regexps" "grep -E fo+" "foo\n" "" \ | |
| @@ -127,7 +127,7 @@ for applet in $applets; do | |
| echo "SKIPPED: $applet (not built)" | |
| continue | |
| fi | |
| - | if PATH="$LINKSDIR":$tsdir:$bindir:$PATH \ |
| + | if PATH="$LINKSDIR:$tsdir:$bindir:$PATH" \ |
| "${tsdir:-.}/$applet".tests | |
| then | |
| : | |
| @@ -137,5 +137,11 @@ for applet in $applets; do | |
| fi | |
| done | |
| - | rm -rf "$LINKSDIR" |
| + | |
| + | # Leaving the dir makes it somewhat easier to run failed test by hand |
| + | #rm -rf "$LINKSDIR" |
| + | |
| + | if [ $status != 0 -a x"$VERBOSE" = x ]; then |
| + | echo "Failures detected, running with VERBOSE=1 will give more info" |
| + | fi |
| exit $status | |
| @@ -58,7 +58,7 @@ testing() | |
| if [ $# -ne 5 ] | |
| then | |
| - | echo "Test $NAME has the wrong number of arguments ($# $*)" >&2 |
| + | echo "Test $NAME has wrong number of arguments (must be 5) ($# $*)" >&2 |
| exit | |
| fi | |