improve automation of sfeed_update merge logic 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 056a9aeb079d7c156f50d0856e06de45d75a8af7
 (DIR) parent 48a8d44803284b875ce120ab7f668fdd3ebc7ee8
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Thu,  7 Aug 2025 20:42:01 +0200
       
       improve automation of sfeed_update merge logic tests
       
       Add a test for checking if the last content is used:
       
       https://git.codemadness.org/sfeed/commit/e77e0165d3151ebe763a602adaa486af2467e6df.html
       
       Diffstat:
         M input/sfeed_update/merge/README     |       2 +-
         M input/sfeed_update/merge/run.sh     |      50 +++++++++++++++++++++++++++++--
         A input/sfeed_update/merge/test_merg… |      27 +++++++++++++++++++++++++++
       
       3 files changed, 75 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/input/sfeed_update/merge/README b/input/sfeed_update/merge/README
       @@ -1,4 +1,4 @@
       -Test for overriden the merge logic.
       +Test for overriding the merge logic.
        
        This test makes sure on each content update a new item is made (-k4,4r).
        It is not the default.
 (DIR) diff --git a/input/sfeed_update/merge/run.sh b/input/sfeed_update/merge/run.sh
       @@ -1,4 +1,48 @@
        #!/bin/sh
       -sfeed_update sfeedrc.1
       -sfeed_update sfeedrc.2
       -sfeed_update sfeedrc.empty
       +
       +# fail(s)
       +fail() {
       +        printf '%-50.50s FAILED\n' "$1:" >&2
       +        exit 1
       +}
       +
       +# info(s)
       +ok() {
       +        printf '%-50.50s OK\n' "$1:" >&2
       +}
       +
       +# cleanup old files.
       +rm -f output/test
       +rm -f output/test_empty
       +
       +###
       +
       +# overriding merge logic, appending items with the same name.
       +sfeed_update sfeedrc.1 >/dev/null
       +test "$?" != "0" && fail "Test overriding merge logic: sfeedrc.1"
       +sfeed_update sfeedrc.2 >/dev/null
       +test "$?" != "0" && fail "Test overriding merge logic: sfeedrc.2"
       +
       +sum=$(sha256sum output/test | cut -f 1 -d ' ')
       +test "$sum" != "5b3310ce2dfec4d4ef7f3f06e66316d2f724af55b8b732ca8ed8167ef31d1fa5" && \
       +        fail "Test overriding merge logic: checksum differs"
       +ok "Test overriding merge logic"
       +
       +###
       +
       +# XML file with no items is OK
       +sfeed_update sfeedrc.empty >/dev/null
       +test "$?" != "0" && fail "Test no items failed" >&2
       +
       +lines=$(wc -l < output/test_empty)
       +lines=$((lines+0))
       +test "$lines" != "0" &&        fail "Test no items failed: lines should be 0"
       +ok "Test XML file with no items"
       +
       +###
       +
       +name="Test merging same items, use the last content"
       +./test_merge_new.sh
       +test "$?" != "0" && fail "$name"
       +ok "$name"
       +
 (DIR) diff --git a/input/sfeed_update/merge/test_merge_new.sh b/input/sfeed_update/merge/test_merge_new.sh
       @@ -0,0 +1,27 @@
       +#!/bin/sh
       +sfeed_update=$(which sfeed_update)
       +
       +SFEED_UPDATE_INCLUDE=1 . "$sfeed_update"
       +
       +old() {
       +        printf '1577836800\tsfeed\thttps://codemadness.org/sfeed.html\ttest\tplain\thttps://codemadness.org/sfeed.html\n'
       +}
       +
       +new() {
       +        printf '1577836800\tsfeed\thttps://codemadness.org/sfeed.html\ttest new\tplain\thttps://codemadness.org/sfeed.html\n'
       +}
       +
       +oldfile=$(mktemp)
       +newfile=$(mktemp)
       +old > "$oldfile"
       +new > "$newfile"
       +content=$(merge "some name" "$oldfile" "$newfile" | cut -f 4 -d '        ')
       +rm -f "$oldfile" "$newfile"
       +
       +status="1"
       +if test "$content" = "test new"; then
       +        status="0"
       +fi
       +
       +exit "$status"
       +