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?