sfeed_update tests: improve - 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 bc7ce8b14e491d94d99b2317a909b66b16929c8e
(DIR) parent b71943857b703ac3cae33cda28cc05a038a74a63
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Tue, 26 Dec 2023 13:51:38 +0100
sfeed_update tests: improve
Remove dependency on cURL and iconv: tested on OpenBSD 3.8 which has neither by
default.
Diffstat:
M input/sfeed_update/test.sh | 100 ++++++++++++++-----------------
1 file changed, 44 insertions(+), 56 deletions(-)
---
(DIR) diff --git a/input/sfeed_update/test.sh b/input/sfeed_update/test.sh
@@ -1,4 +1,5 @@
#!/bin/sh
+
SFEED_UPDATE="sfeed_update"
# expect(expect, got, [extra])
@@ -7,6 +8,13 @@ expect() {
extra="$3"
[ "$extra" = "" ] || extra="($extra)"
echo "Expected \"$1\", but got \"$2\" $extra" >&2
+
+# DEBUG
+ echo "Last stdout:"
+ cat "$log_stdout"
+ echo ""
+ echo "Last stderr:"
+ cat "$log_stderr"
exit 1
fi
}
@@ -18,6 +26,22 @@ init_test() {
feedpath="$(mktemp -d)"
}
+# create an rc file with some defaults for testing.
+createrc() {
+cat <<!
+# override default iconv: do not use text decoding.
+convertencoding() {
+ cat
+}
+# override default cURL: local files are tested.
+fetch() {
+ cat "\${2#file://}" 2>/dev/null
+}
+!
+# add the rest.
+cat
+}
+
cleanup() {
rm -rf "$feedpath" "$log_stdout" "$log_stderr" "$rc"
}
@@ -26,7 +50,7 @@ cleanup() {
test_normal() {
init_test
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
feeds() {
@@ -66,12 +90,7 @@ feeds() {
test_one_fail() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
feeds() {
@@ -111,7 +130,7 @@ feeds() {
test_sigterm() {
init_test
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
# override
@@ -188,7 +207,7 @@ test_config_invocation() {
test_tmpdir() {
init_test
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
feeds() {
@@ -218,7 +237,6 @@ feeds() {
echo "test_tmpdir: test OK" >&2
}
-# TODO
test_parameters() {
init_test
@@ -238,7 +256,7 @@ test_parameters() {
9|feedurl|basesiteurl||
!
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1 # must be run sequential
@@ -280,7 +298,7 @@ test_override_fetch() {
paramfile="$(mktemp)"
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1 # must be run sequential
@@ -329,7 +347,7 @@ feeds() {
test_override_convertencoding() {
init_test
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
# convertencoding(name, from, to)
@@ -365,12 +383,7 @@ feeds() {
test_fail_fetch() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1
@@ -418,12 +431,7 @@ feeds() {
test_fail_convertencoding() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1
@@ -471,12 +479,7 @@ feeds() {
test_fail_parse() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1
@@ -524,12 +527,7 @@ feeds() {
test_fail_filter() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1
@@ -577,12 +575,7 @@ feeds() {
test_fail_merge() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1
@@ -633,12 +626,7 @@ feeds() {
test_fail_order() {
init_test
- rc="$(mktemp)"
- log_stdout="$(mktemp)"
- log_stderr="$(mktemp)"
- feedpath="$(mktemp -d)"
-
- cat > "$rc" <<!
+ createrc > "$rc" <<!
sfeedpath="$feedpath"
maxjobs=1
@@ -713,19 +701,19 @@ test_fail_filter
test_sigterm
# TODO:
-# - for testing, remove dependency on cURL.
-# ? for testing, remove dependency on iconv?
# - test proper cleanup on SIGTERM.
# - test weird feednames.
# - check filenames, '*', '/', newline.
# - test translation of '/' to '_' in feednames.
# - test override functions.
-# - test error messages, grep for "FAIL (ENCODING)" etc.
# - test merge, order logic.
-# - add existing test-cases and make them automatic:
-# - decoding/
-# - exitstatus/
-# - merge/
+# x add existing test-cases and make them automatic:
+# x decoding/
+# x exitstatus/
+# x merge/
+# x test error messages, grep for "FAIL (ENCODING)" etc.
# x test $TMPDIR.
# x test if feeds() is not set.
# x test empty fields (for xargs etc).
+# x for testing, remove dependency on cURL.
+# x for testing, remove dependency on iconv?