sfeed_update: improve tests - sfeed_tests - sfeed tests and RSS and Atom files
(HTM) git clone git://git.codemadness.org/sfeed_tests
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit d13fbb6ea1f4a4415e63eb28bdcd0ade488b0ba4
(DIR) parent 5ea2db480c389f7db699fb4354f7679c8849a9eb
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 15 Dec 2023 14:02:53 +0100
sfeed_update: improve tests
Diffstat:
D input/sfeed_update/manual.sh | 9 ---------
M input/sfeed_update/test.sh | 54 ++++++++++++++++++++++++++++++-
2 files changed, 53 insertions(+), 10 deletions(-)
---
(DIR) diff --git a/input/sfeed_update/manual.sh b/input/sfeed_update/manual.sh
@@ -1,9 +0,0 @@
-#!/bin/sh
-sfeed_update /dev/null # should say feeds function is not defined.
-sfeed_update nonexistant
-sfeed_update `pwd` # directory
-sfeed_update /root # directory, no access
-sfeed_update /root/.sfeed/sfeedrc # no access
-
-#sfeed_update "" # empty: loads default
-#sfeed_update # loads default
(DIR) diff --git a/input/sfeed_update/test.sh b/input/sfeed_update/test.sh
@@ -146,13 +146,65 @@ feeds() {
echo "test_sigterm: test OK" >&2
}
+test_config_invocation() {
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+ "$SFEED_UPDATE" /dev/null 2> "$log_stderr" # should say feeds function is not defined.
+ expect "1" "$?" "exit statuscode"
+
+ msg='does not contain a "feeds" function'
+ fgrep -q "$msg" < "$log_stderr"
+ expect "0" "$?" "stderr must contain text $msg"
+
+ # TODO:
+ #"$SFEED_UPDATE" nonexistant
+ #"$SFEED_UPDATE" `pwd` # directory
+ #"$SFEED_UPDATE" /root # directory, no access
+ #"$SFEED_UPDATE" /root/.sfeed/sfeedrc # no access
+
+ echo "test_config_invocation: test OK" >&2
+}
+
+test_tmpdir() {
+ rc="$(mktemp)"
+ feedpath="$(mktemp -d)"
+ log_stdout="$(mktemp)"
+ log_stderr="$(mktemp)"
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+
+feeds() {
+ true
+}
+!
+
+ TMPDIR=/noaccess "$SFEED_UPDATE" "$rc" >"$log_stdout" 2>"$log_stderr"
+ expect "1" "$?" "exit statuscode"
+
+ TMPDIR="/tmp" "$SFEED_UPDATE" "$rc" >"$log_stdout" 2>"$log_stderr"
+ expect "0" "$?" "exit statuscode"
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
+ expect "0" "$?" "exit statuscode"
+
+ rm -rf "$rc" "$feedpath" "$log_stdout" "$log_stderr"
+
+ echo "test_tmpdir: test OK" >&2
+}
+
test_normal
test_one_fail
# NOTE: SIGINT can't reliably be tested.
test_sigterm
+test_tmpdir
+test_config_invocation
+
# TODO:
+# x test $TMPDIR.
+# x test if feeds() is not set.
# - test weird feednames.
# - check filenames, '*', '/', newline.
# - test override functions.
@@ -160,6 +212,6 @@ test_sigterm
# - test merge, order logic.
# - test empty fields (for xargs etc).
# - add existing test-cases and make them automatic:
-# - ecoding/
+# - decoding/
# - exitstatus/
# - merge/