diff options
author | EuAndreh <eu@euandre.org> | 2021-06-13 19:03:08 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-06-13 19:03:08 -0300 |
commit | ec930afd0680351108d539dfbd0c2a7b14f40fe8 (patch) | |
tree | 0e0dd8746ed352b6b3b53a116920e248866d0eee /aux | |
parent | tests/cli-opts.sh: Test help flags on different position too (diff) | |
download | remembering-ec930afd0680351108d539dfbd0c2a7b14f40fe8.tar.gz remembering-ec930afd0680351108d539dfbd0c2a7b14f40fe8.tar.xz |
Move tests/lib.sh -> aux/tests-lib.sh; add fgrep assert variant
Diffstat (limited to 'aux')
-rwxr-xr-x | aux/tests-lib.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/aux/tests-lib.sh b/aux/tests-lib.sh new file mode 100755 index 0000000..e075974 --- /dev/null +++ b/aux/tests-lib.sh @@ -0,0 +1,93 @@ +#!/bin/sh + +OUT= +ERR= +STATUS= + +assert_status() { + if [ "$STATUS" != "$1" ]; then + printf '\nERR: Bad status.\n\nexpected: %s\ngot: %s\n' \ + "$1" "$STATUS" >&2 + exit 1 + fi +} + +assert_usage() { + if ! grep -Fq 'Usage' "$1"; then + echo 'Expected to find "Usage" text, it was missing:' >&2 + cat "$1" >&2 + exit 1 + fi +} + +assert_empty_stream() { + if [ -s "$2" ]; then + printf '\nERR: Expected %s (%s) to be empty, but has content:\n%s\n' \ + "$1" "$2" "$(cat "$2")" >&2 + exit 1 + fi +} + +assert_empty_stdout() { + assert_empty_stream STDOUT "$OUT" +} + +assert_empty_stderr() { + assert_empty_stream STDERR "$ERR" +} + +assert_stream() { + if [ "$(cat "$2")" != "$3" ]; then + printf '\nERR: Bad %s (%s)\n\nexpected: %s\ngot: %s\n' \ + "$1" "$2" "$3" "$(cat "$2")" >&2 + exit 1 + fi +} + +assert_stdout() { + assert_stream STDOUT "$OUT" "$1" +} + +assert_stderr() { + assert_stream STDERR "$ERR" "$1" +} + +assert_grep_stream() { + if ! grep -qE "$3" "$2"; then + printf '\nERR: Bad %s (%s)\n\ngrepping: %s\nin:\n%s\n' \ + "$1" "$2" "$3" "$(cat "$2")" >&2 + exit 1 + fi +} + +assert_grep_stdout() { + assert_grep_stream STDOUT "$OUT" "$1" +} + +assert_grep_stderr() { + assert_grep_stream STDERR "$ERR" "$1" +} + +assert_fgrep_stream() { + if ! grep -Fq -- "$3" "$2"; then + printf '\nERR: Bad %s (%s)\n\ngrepping: %s\nin:\n%s\n' \ + "$1" "$2" "$3" "$(cat "$2")" >&2 + exit 1 + fi +} + +assert_fgrep_stdout() { + assert_fgrep_stream STDOUT "$OUT" "$1" +} + +assert_fgrep_stderr() { + assert_fgrep_stream STDERR "$ERR" "$1" +} + +testing() { + printf 'testing: %s...' "$1" >&2 +} + +test_ok() { + printf ' OK.\n' >&2 +} |