sfeed_update: tests for (overrided) functions that failed - 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 8bd574db409377383f6b2e7088b660b66aa5dd58
 (DIR) parent 4cc753fc3d0df7213d9dd2c6711b053a0921b5e6
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat, 16 Dec 2023 14:37:00 +0100
       
       sfeed_update: tests for (overrided) functions that failed
       
       check statuscode, stderr / log, statuscode and files.
       
       work in progress...
       
       Diffstat:
         M input/sfeed_update/test.sh          |     343 ++++++++++++++++++++++++++++++-
       
       1 file changed, 335 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git a/input/sfeed_update/test.sh b/input/sfeed_update/test.sh
       @@ -362,23 +362,350 @@ feeds() {
                echo "test_override_convertencoding: test OK" >&2
        }
        
       -test_override_fetch
       +test_fail_fetch() {
       +        init_test
       +
       +        rc="$(mktemp)"
       +        log_stdout="$(mktemp)"
       +        log_stderr="$(mktemp)"
       +        feedpath="$(mktemp -d)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1
       +
       +fetch() {
       +        test "\$1" = "2" && return 1
       +        true
       +}
       +
       +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 "1" "$?" "exit statuscode"
       +
       +        linecount=$(wc -l < "$log_stdout")
       +        linecount=$((linecount+0))
       +        expect "2" "$linecount" "2 lines should be written to stdout"
       +
       +        linecount=$(wc -l < "$log_stderr")
       +        linecount=$((linecount+0))
       +        expect "1" "$linecount" "1 line should be written to stderr"
       +
       +        grep -q "] 2 .* FAIL (FETCH)" < "$log_stderr"
       +        expect "0" "$?" 'stderr should contain "FAIL (FETCH)"'
       +
       +        test -d "$feedpath"
       +        expect "0" "$?" "directory should exist: $feedpath"
       +
       +        for i in 1 2 3; do
       +                f="$feedpath/$i"
       +                test -f "$f"
       +                expect "0" "$?" "file should exist: $f"
       +        done
       +
       +        cleanup
       +
       +        echo "test_fail_fetch: test OK" >&2
       +}
       +
       +test_fail_convertencoding() {
       +        init_test
       +
       +        rc="$(mktemp)"
       +        log_stdout="$(mktemp)"
       +        log_stderr="$(mktemp)"
       +        feedpath="$(mktemp -d)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1
       +
       +convertencoding() {
       +        test "\$1" = "2" && return 1
       +        true
       +}
       +
       +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 "1" "$?" "exit statuscode"
       +
       +        linecount=$(wc -l < "$log_stdout")
       +        linecount=$((linecount+0))
       +        expect "2" "$linecount" "2 lines should be written to stdout"
       +
       +        linecount=$(wc -l < "$log_stderr")
       +        linecount=$((linecount+0))
       +        expect "1" "$linecount" "1 line should be written to stderr"
       +
       +        grep -q "] 2 .* FAIL (ENCODING)" < "$log_stderr"
       +        expect "0" "$?" 'stderr should contain "FAIL (ENCODING)"'
       +
       +        test -d "$feedpath"
       +        expect "0" "$?" "directory should exist: $feedpath"
       +
       +        for i in 1 2 3; do
       +                f="$feedpath/$i"
       +                test -f "$f"
       +                expect "0" "$?" "file should exist: $f"
       +        done
       +
       +        cleanup
       +
       +        echo "test_fail_convertencoding: test OK" >&2
       +}
       +
       +test_fail_parse() {
       +        init_test
       +
       +        rc="$(mktemp)"
       +        log_stdout="$(mktemp)"
       +        log_stderr="$(mktemp)"
       +        feedpath="$(mktemp -d)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1
       +
       +parse() {
       +        test "\$1" = "2" && return 1
       +        true
       +}
       +
       +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 "1" "$?" "exit statuscode"
       +
       +        linecount=$(wc -l < "$log_stdout")
       +        linecount=$((linecount+0))
       +        expect "2" "$linecount" "2 lines should be written to stdout"
       +
       +        linecount=$(wc -l < "$log_stderr")
       +        linecount=$((linecount+0))
       +        expect "1" "$linecount" "1 line should be written to stderr"
       +
       +        grep -q "] 2 .* FAIL (PARSE)" < "$log_stderr"
       +        expect "0" "$?" 'stderr should contain "FAIL (PARSE)"'
       +
       +        test -d "$feedpath"
       +        expect "0" "$?" "directory should exist: $feedpath"
       +
       +        for i in 1 2 3; do
       +                f="$feedpath/$i"
       +                test -f "$f"
       +                expect "0" "$?" "file should exist: $f"
       +        done
       +
       +        cleanup
       +
       +        echo "test_fail_parse: test OK" >&2
       +}
       +
       +test_fail_filter() {
       +        init_test
       +
       +        rc="$(mktemp)"
       +        log_stdout="$(mktemp)"
       +        log_stderr="$(mktemp)"
       +        feedpath="$(mktemp -d)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1
       +
       +filter() {
       +        test "\$1" = "2" && return 1
       +        true
       +}
       +
       +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 "1" "$?" "exit statuscode"
       +
       +        linecount=$(wc -l < "$log_stdout")
       +        linecount=$((linecount+0))
       +        expect "2" "$linecount" "2 lines should be written to stdout"
       +
       +        linecount=$(wc -l < "$log_stderr")
       +        linecount=$((linecount+0))
       +        expect "1" "$linecount" "1 line should be written to stderr"
       +
       +        grep -q "] 2 .* FAIL (FILTER)" < "$log_stderr"
       +        expect "0" "$?" 'stderr should contain "FAIL (FILTER)"'
       +
       +        test -d "$feedpath"
       +        expect "0" "$?" "directory should exist: $feedpath"
       +
       +        for i in 1 2 3; do
       +                f="$feedpath/$i"
       +                test -f "$f"
       +                expect "0" "$?" "file should exist: $f"
       +        done
       +
       +        cleanup
       +
       +        echo "test_fail_filter: test OK" >&2
       +}
       +
       +test_fail_merge() {
       +        init_test
       +
       +        rc="$(mktemp)"
       +        log_stdout="$(mktemp)"
       +        log_stderr="$(mktemp)"
       +        feedpath="$(mktemp -d)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1
       +
       +merge() {
       +        test "\$1" = "2" && return 1
       +        true
       +}
       +
       +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 "1" "$?" "exit statuscode"
       +
       +        linecount=$(wc -l < "$log_stdout")
       +        linecount=$((linecount+0))
       +        expect "2" "$linecount" "2 lines should be written to stdout"
       +
       +        linecount=$(wc -l < "$log_stderr")
       +        linecount=$((linecount+0))
       +        expect "1" "$linecount" "1 line should be written to stderr"
       +
       +        # TODO: test both if there is new data (after filter stage) and no data.
       +        # because if theres no data theres not even a merge attempted.
       +
       +        grep -q "] 2 .* FAIL (MERGE)" < "$log_stderr"
       +        expect "0" "$?" 'stderr should contain "FAIL (MERGE)"'
       +
       +        test -d "$feedpath"
       +        expect "0" "$?" "directory should exist: $feedpath"
       +
       +        for i in 1 2 3; do
       +                f="$feedpath/$i"
       +                test -f "$f"
       +                expect "0" "$?" "file should exist: $f"
       +        done
       +
       +        cleanup
       +
       +        echo "test_fail_merge: test OK" >&2
       +}
       +
       +test_fail_order() {
       +        init_test
       +
       +        rc="$(mktemp)"
       +        log_stdout="$(mktemp)"
       +        log_stderr="$(mktemp)"
       +        feedpath="$(mktemp -d)"
       +
       +        cat > "$rc" <<!
       +sfeedpath="$feedpath"
       +maxjobs=1
       +
       +filter() {
       +        test "\$1" = "2" && return 1
       +        true
       +}
       +
       +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 "1" "$?" "exit statuscode"
       +
       +        linecount=$(wc -l < "$log_stdout")
       +        linecount=$((linecount+0))
       +        expect "2" "$linecount" "2 lines should be written to stdout"
       +
       +        linecount=$(wc -l < "$log_stderr")
       +        linecount=$((linecount+0))
       +        expect "1" "$linecount" "1 line should be written to stderr"
       +
       +        # TODO: test both if there is new data (after filter stage) and no data.
       +        # because if theres no data theres not even a merge attempted.
       +
       +        grep -q "] 2 .* FAIL (ORDER)" < "$log_stderr"
       +        expect "0" "$?" 'stderr should contain "FAIL (ORDER)"'
       +
       +        test -d "$feedpath"
       +        expect "0" "$?" "directory should exist: $feedpath"
       +
       +        for i in 1 2 3; do
       +                f="$feedpath/$i"
       +                test -f "$f"
       +                expect "0" "$?" "file should exist: $f"
       +        done
       +
       +        cleanup
       +
       +        echo "test_fail_order: test OK" >&2
       +}
       +
       +test_fail_fetch
       +test_fail_convertencoding
       +test_fail_parse
       +test_fail_filter
       +
       +# TODO
       +#test_fail_merge
       +#test_fail_order
        
        exit $?
        
       +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