wip - 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 4cc753fc3d0df7213d9dd2c6711b053a0921b5e6
 (DIR) parent b142d375c3703d7767dfe78361d3092c10684900
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat, 16 Dec 2023 13:43:05 +0100
       
       wip
       
       Diffstat:
         M input/sfeed_update/test.sh          |     131 ++++++++++++++++++++++++++++---
       
       1 file changed, 118 insertions(+), 13 deletions(-)
       ---
 (DIR) diff --git a/input/sfeed_update/test.sh b/input/sfeed_update/test.sh
       @@ -205,14 +205,11 @@ feeds() {
        
                # TODO:
                # check if TMPDIR="" is actually used and cleaned up.
       -        # tmp="$(mktemp -d)"
       -        # mkdir -p "$tmp"
       -        # TMPDIR="$tmp" ...
       -        # dircount=0; for d in "$tmp"/*/; do echo "$d"; dircount=$((dircount+1)); done
       -        # test "$dircount" = "1"
       -
       -        "$SFEED_UPDATE" "$rc" >"$log_stdout" 2> "$log_stderr"
       -        expect "0" "$?" "exit statuscode"
       +        #tmp="$(mktemp -d)"
       +        #mkdir -p "$tmp"
       +        #TMPDIR="$tmp" ...
       +        #dircount=0; for d in "$tmp"/*/; do echo "$d"; dircount=$((dircount+1)); done
       +        #test "$dircount" = "1"
        
                # TODO: check if temporary directory is cleaned succesfully after run.
        
       @@ -277,12 +274,117 @@ feeds() {
                echo "test_parameters: test OK" >&2
        }
        
       +# TODO
       +test_override_fetch() {
       +        init_test
       +
       +        paramfile="$(mktemp)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1 # must be run sequential
       +
       +# fetch(name, url, feedfile)
       +fetch() {
       +        # TODO: check parameters also
       +        printf '%s|%s|%s|\n' "\$1" "\$2" "\$3" >> "$paramfile"
       +
       +        case "\$1" in
       +        1)
       +                echo "<item><title>a</title></item>";;
       +        2)
       +                echo "<item><title>b</title></item>";;
       +        3)
       +                echo "<item><title>c</title></item>";;
       +        esac
       +}
       +
       +feeds() {
       +        # feed <name> <feedurl> [basesiteurl] [encoding]
       +        feed "1" "file:///dev/null"
       +        feed "2" "file:///dev/null"
       +        feed "3" "file:///dev/null"
       +}
       +!
       +
       +        "$SFEED_UPDATE" "$rc" >"$log_stdout" 2>"$log_stderr"
       +        expect "0" "$?" "exit statuscode"
       +
       +        # TODO: check results.
       +#        ls -l "$feedpath" # DEBUG
       +        
       +        result=$(cut -f 2 "$feedpath/1" "$feedpath/2" "$feedpath/3" | tr -d '\n')
       +        expect "abc" "$result" "results of feed files"
       +
       +        # TODO: check paramfile contents.
       +        cat "$paramfile"
       +
       +        cleanup
       +        rm -f "$paramfile"
       +
       +        echo "test_override_fetch: test OK" >&2
       +}
       +
       +# TODO
       +test_override_convertencoding() {
       +        init_test
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +
       +# convertencoding(name, from, to)
       +convertencoding() {
       +        # TODO: check parameters also
       +
       +        case "\$1" in
       +        1)
       +                echo "<item><title>a</title></item>";;
       +        2)
       +                echo "<item><title>b</title></item>";;
       +        3)
       +                echo "<item><title>c</title></item>";;
       +        esac
       +}
       +
       +feeds() {
       +        # feed <name> <feedurl> [basesiteurl] [encoding]
       +        feed "1" "file:///dev/null" "" "utf-8"
       +        feed "2" "file:///dev/null" "" "utf-69"
       +        feed "3" "file:///dev/null" "" "iso-8859-1"
       +}
       +!
       +
       +        "$SFEED_UPDATE" "$rc" >"$log_stdout" 2>"$log_stderr"
       +        # TODO: check results.
       +
       +        ls -l "$feedpath" # DEBUG
       +
       +        echo "test_override_convertencoding: test OK" >&2
       +}
       +
       +test_override_fetch
       +
       +exit $?
       +
       +#test_override_convertencoding
       +#test_override_parse
       +#test_override_filter
       +#test_override_merge
       +#test_override_order
       +
       +#test_fail_fetch
       +#test_fail_convertencoding
       +#test_fail_parse
       +#test_fail_filter
       +#test_fail_merge
       +#test_fail_order
       +
       +exit $? # DEBUG
       +
        test_normal
        test_one_fail
       -
        test_tmpdir
        test_config_invocation
       -
        test_parameters
        
        exit $? # DEBUG
       @@ -291,15 +393,18 @@ exit $? # DEBUG
        test_sigterm
        
        # TODO:
       -# x test $TMPDIR.
       -# x test if feeds() is not set.
       +# - 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.
       -# x test empty fields (for xargs etc).
        # - add existing test-cases and make them automatic:
        #   - decoding/
        #   - exitstatus/
        #   - merge/
       +# x test $TMPDIR.
       +# x test if feeds() is not set.
       +# x test empty fields (for xargs etc).