diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-07-17 02:42:52 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-07-17 02:42:52 +0200 |
commit | 832a239b72779e97b09943d77b9097ed8376e18e (patch) | |
tree | f56001c3c4d799f361d956794bd20aa164fa1dec /t/test-lib-functions.sh | |
parent | Merge branch 'hn/refs-test-cleanup' (diff) | |
parent | t6402: preserve git exit status code (diff) | |
download | git-832a239b72779e97b09943d77b9097ed8376e18e.tar.xz git-832a239b72779e97b09943d77b9097ed8376e18e.zip |
Merge branch 'dd/test-stdout-count-lines'
Tiny test clean-up.
* dd/test-stdout-count-lines:
t6402: preserve git exit status code
t6400: preserve git ls-files exit status code
test-lib-functions: introduce test_stdout_line_count
Diffstat (limited to 't/test-lib-functions.sh')
-rw-r--r-- | t/test-lib-functions.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index b2810478a2..ce41596514 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -845,6 +845,32 @@ test_line_count () { fi } +# SYNOPSIS: +# test_stdout_line_count <bin-ops> <value> <cmd> [<args>...] +# +# test_stdout_line_count checks that the output of a command has the number +# of lines it ought to. For example: +# +# test_stdout_line_count = 3 git ls-files -u +# test_stdout_line_count -gt 10 ls +test_stdout_line_count () { + local ops val trashdir && + if test "$#" -le 3 + then + BUG "expect 3 or more arguments" + fi && + ops="$1" && + val="$2" && + shift 2 && + if ! trashdir="$(git rev-parse --git-dir)/trash"; then + BUG "expect to be run inside a worktree" + fi && + mkdir -p "$trashdir" && + "$@" >"$trashdir/output" && + test_line_count "$ops" "$val" "$trashdir/output" +} + + test_file_size () { test "$#" -ne 1 && BUG "1 param" test-tool path-utils file-size "$1" |