sfeed_update: improve tests, remove old now duplicate 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 2f1ac6a1578ef94280e1754206641dc740ebcaaa
(DIR) parent 8c57eb5eeb2c180973f9d93b7469bbdc6202f43c
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 15 Dec 2023 23:29:56 +0100
sfeed_update: improve tests, remove old now duplicate tests
Diffstat:
D input/sfeed_update/exitstatus/run.… | 12 ------------
D input/sfeed_update/exitstatus/sfee… | 6 ------
D input/sfeed_update/exitstatus/sfee… | 6 ------
M input/sfeed_update/test.sh | 100 ++++++++++++++++++++++++++++----
4 files changed, 90 insertions(+), 34 deletions(-)
---
(DIR) diff --git a/input/sfeed_update/exitstatus/run.sh b/input/sfeed_update/exitstatus/run.sh
@@ -1,12 +0,0 @@
-#!/bin/sh
-if ! sfeed_update sfeedrc.bad; then
- echo "Test 1 OK"
-else
- echo "Test 1 FAIL: should return error code if any feed failed"
-fi
-
-if sfeed_update sfeedrc.ok; then
- echo "Test 2 OK"
-else
- echo "Test 2 FAIL: should return 0 if all feeds are OK"
-fi
(DIR) diff --git a/input/sfeed_update/exitstatus/sfeedrc.bad b/input/sfeed_update/exitstatus/sfeedrc.bad
@@ -1,6 +0,0 @@
-sfeedpath="`pwd`/output"
-
-feeds() {
- feed "test" "file:///dev/null"
- feed "test2" "file:///`pwd`/noexist"
-}
(DIR) diff --git a/input/sfeed_update/exitstatus/sfeedrc.ok b/input/sfeed_update/exitstatus/sfeedrc.ok
@@ -1,6 +0,0 @@
-sfeedpath="`pwd`/output"
-
-feeds() {
- feed "test" "file:///dev/null"
- feed "test2" "file:///dev/null"
-}
(DIR) diff --git a/input/sfeed_update/test.sh b/input/sfeed_update/test.sh
@@ -150,18 +150,35 @@ feeds() {
test_config_invocation() {
init_test
- "$SFEED_UPDATE" /dev/null 2> "$log_stderr" # should say feeds function is not defined.
+ "$SFEED_UPDATE" /dev/null >/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"
+
+ "$SFEED_UPDATE" nonexistant >/dev/null 2> "$log_stderr"
+ expect "1" "$?" "exit statuscode"
+ msg='Configuration file "nonexistant" cannot be read.'
+ fgrep -q "$msg" < "$log_stderr"
+ expect "0" "$?" "stderr must contain text $msg"
+ "$SFEED_UPDATE" `pwd` >/dev/null 2> "$log_stderr" # directory
+ 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
+ "$SFEED_UPDATE" /root >/dev/null 2> "$log_stderr" # directory, no access
+ expect "1" "$?" "exit statuscode"
+ msg='Configuration file "/root" cannot be read.'
+ fgrep -q "$msg" < "$log_stderr"
+ expect "0" "$?" "stderr must contain text $msg"
+
+ "$SFEED_UPDATE" /root/.sfeed/sfeedrc >/dev/null 2> "$log_stderr" # no access
+ expect "1" "$?" "exit statuscode"
+ msg='Configuration file "/root/.sfeed/sfeedrc" cannot be read.'
+ fgrep -q "$msg" < "$log_stderr"
+ expect "0" "$?" "stderr must contain text $msg"
cleanup
@@ -179,6 +196,7 @@ feeds() {
}
!
+ # TODO: check error message
TMPDIR=/noaccess "$SFEED_UPDATE" "$rc" >"$log_stdout" 2>"$log_stderr"
expect "1" "$?" "exit statuscode"
@@ -188,20 +206,82 @@ feeds() {
"$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
expect "0" "$?" "exit statuscode"
+ # TODO: check if temporary directory is cleaned succesfully after run.
+
cleanup
echo "test_tmpdir: test OK" >&2
}
+# TODO
+test_parameters() {
+ init_test
+
+ expectfile="$(mktemp)"
+
+ cat > "$expectfile" <<!
+||||
+|feedurl|basesiteurl|encoding|
+1||||
+2|feedurl|||
+3|feedurl|basesiteurl||
+4|feedurl|basesiteurl|encoding|
+5|feedurl||encoding|
+6|||encoding|
+7||basesiteurl|encoding|
+8|feedurl|||
+9|feedurl|basesiteurl||
+!
+
+ cat > "$rc" <<!
+sfeedpath="$feedpath"
+maxjobs=1 # must be run sequential
+
+feed() {
+ printf '%s|%s|%s|%s|\n' "\$1" "\$2" "\$3" "\$4"
+}
+
+feeds() {
+ # feed <name> <feedurl> [basesiteurl] [encoding]
+ feed "" "" "" ""
+ feed "" "feedurl" "basesiteurl" "encoding"
+ feed "1" "" "" ""
+ feed "2" "feedurl" "" ""
+ feed "3" "feedurl" "basesiteurl" ""
+ feed "4" "feedurl" "basesiteurl" "encoding"
+ feed "5" "feedurl" "" "encoding"
+ feed "6" "" "" "encoding"
+ feed "7" "" "basesiteurl" "encoding"
+ feed "8" "feedurl"
+ feed "9" "feedurl" "basesiteurl"
+}
+!
+
+ "$SFEED_UPDATE" "$rc" >"$log_stdout" 2>"$log_stderr"
+ expect "0" "$?" "exit statuscode"
+
+ diff -u "$log_stdout" "$expectfile"
+ expect "0" "$?" "exit statuscode"
+
+ cleanup
+ rm -f "$expectfile"
+
+ echo "test_parameters: test OK" >&2
+}
+
test_normal
test_one_fail
-# NOTE: SIGINT can't reliably be tested.
-test_sigterm
-
test_tmpdir
test_config_invocation
+test_parameters
+
+exit $? # DEBUG
+
+# NOTE: SIGINT can't reliably be tested.
+test_sigterm
+
# TODO:
# x test $TMPDIR.
# x test if feeds() is not set.
@@ -210,7 +290,7 @@ test_config_invocation
# - test override functions.
# - test error messages, grep for "FAIL (ENCODING)" etc.
# - test merge, order logic.
-# - test empty fields (for xargs etc).
+# x test empty fields (for xargs etc).
# - add existing test-cases and make them automatic:
# - decoding/
# - exitstatus/