sfeed_update: add some tests, needs cleaning up - 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 5ea2db480c389f7db699fb4354f7679c8849a9eb
 (DIR) parent d8e5c3bd772a5480dff77936b2642e496e741e38
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Thu, 14 Dec 2023 23:29:26 +0100
       
       sfeed_update: add some tests, needs cleaning up
       
       Diffstat:
         A input/sfeed_update/decoding/invali… |      28 ++++++++++++++++++++++++++++
         A input/sfeed_update/merge/1.xml      |      15 +++++++++++++++
         A input/sfeed_update/merge/2.xml      |      15 +++++++++++++++
         A input/sfeed_update/merge/README     |       4 ++++
         A input/sfeed_update/merge/empty.xml  |       5 +++++
         A input/sfeed_update/merge/run.sh     |       4 ++++
         A input/sfeed_update/merge/sfeedrc.1  |       7 +++++++
         A input/sfeed_update/merge/sfeedrc.2  |      14 ++++++++++++++
         A input/sfeed_update/merge/sfeedrc.e… |       9 +++++++++
       
       9 files changed, 101 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/input/sfeed_update/decoding/invalid_decode.sh b/input/sfeed_update/decoding/invalid_decode.sh
       @@ -0,0 +1,28 @@
       +#!/bin/sh
       +# test decoding a feed.
       +# test invalid characters, invalid text-encoding names, etc.
       +
       +tmppath=$(mktemp -d)
       +tmpfeed="/tmp/testfeed.$$"
       +tmprc="/tmp/sfeedrc.$$"
       +
       +printf '\x80' > "${tmpfeed}"
       +printf 'abc' > "${tmpfeed}2"
       +printf 'abc' > "${tmpfeed}3" # OK
       +printf '%s\n' '<?xml version="1.0" encoding="UTF-8"?>' > "${tmpfeed}4" # OK
       +printf '%s\n' '<?xml version="1.0" encoding="UTF-69"?>' > "${tmpfeed}5"
       +
       +cat > "$tmprc" <<!__EOF__
       +sfeedpath="$tmppath"
       +
       +feeds() {
       +        # feed <name> <url> [baseurl] [encoding]
       +        feed "testfeed" "file://$tmpfeed" "" "utf-16"
       +        feed "testfeed2" "file://${tmpfeed}2" "" "invalid-name"
       +        feed "testfeed3" "file://${tmpfeed}3"
       +        feed "testfeed4" "file://${tmpfeed}4"
       +        feed "testfeed5" "file://${tmpfeed}5" "" "utf-69" # override encoding, invalid name so should fail.
       +}
       +!__EOF__
       +
       +sfeed_update "$tmprc"
 (DIR) diff --git a/input/sfeed_update/merge/1.xml b/input/sfeed_update/merge/1.xml
       @@ -0,0 +1,15 @@
       +<?xml version="1.0"?>
       +<rss version="2.0">
       +  <channel>
       +   <item>
       +     <title>item 1</title>
       +     <link>https://a/</link>
       +     <description>abc</description>
       +   </item>
       +   <item>
       +     <title>item 2</title>
       +     <link>https://a/</link>
       +     <description>abc</description>
       +   </item>
       +  </channel>
       +</rss>
 (DIR) diff --git a/input/sfeed_update/merge/2.xml b/input/sfeed_update/merge/2.xml
       @@ -0,0 +1,15 @@
       +<?xml version="1.0"?>
       +<rss version="2.0">
       +  <channel>
       +   <item>
       +     <title>item 1</title>
       +     <link>https://a/</link>
       +     <description>abc 2</description>
       +   </item>
       +   <item>
       +     <title>item 2</title>
       +     <link>https://a/</link>
       +     <description>abc 2</description>
       +   </item>
       +  </channel>
       +</rss>
 (DIR) diff --git a/input/sfeed_update/merge/README b/input/sfeed_update/merge/README
       @@ -0,0 +1,4 @@
       +Test for overriden 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/empty.xml b/input/sfeed_update/merge/empty.xml
       @@ -0,0 +1,5 @@
       +<?xml version="1.0"?>
       +<rss version="2.0">
       +  <channel>
       +  </channel>
       +</rss>
 (DIR) diff --git a/input/sfeed_update/merge/run.sh b/input/sfeed_update/merge/run.sh
       @@ -0,0 +1,4 @@
       +#!/bin/sh
       +sfeed_update sfeedrc.1
       +sfeed_update sfeedrc.2
       +sfeed_update sfeedrc.empty
 (DIR) diff --git a/input/sfeed_update/merge/sfeedrc.1 b/input/sfeed_update/merge/sfeedrc.1
       @@ -0,0 +1,7 @@
       +sfeedpath="`pwd`/output"
       +
       +# list of feeds to fetch:
       +feeds() {
       +        # feed <name> <feedurl> [basesiteurl] [encoding]
       +        feed "test" "file:///`pwd`/1.xml"
       +}
 (DIR) diff --git a/input/sfeed_update/merge/sfeedrc.2 b/input/sfeed_update/merge/sfeedrc.2
       @@ -0,0 +1,14 @@
       +sfeedpath="`pwd`/output"
       +
       +# merge raw files: unique sort by id, title, link.
       +# merge(name, oldfile, newfile)
       +merge() {
       +        # NOTE: added -k4,4r
       +        sort -t '        ' -u -k6,6 -k2,2 -k3,3 -k4,4r "$2" "$3" 2>/dev/null
       +}
       +
       +# list of feeds to fetch:
       +feeds() {
       +        # feed <name> <feedurl> [basesiteurl] [encoding]
       +        feed "test" "file:///`pwd`/2.xml"
       +}
 (DIR) diff --git a/input/sfeed_update/merge/sfeedrc.empty b/input/sfeed_update/merge/sfeedrc.empty
       @@ -0,0 +1,9 @@
       +sfeedpath="`pwd`/output"
       +
       +rm -f "$sfeedpath/empty"
       +
       +# list of feeds to fetch:
       +feeds() {
       +        # feed <name> <feedurl> [basesiteurl] [encoding]
       +        feed "test_empty" "file:///`pwd`/empty.xml"
       +}