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"
+