URI: 
       improve coverage tests - webdump_tests - Testfiles for webdump
  HTML git clone git://git.codemadness.org/webdump_tests
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
   DIR commit 18656fa4097e29de03f41394830a9d0eebca5c66
   DIR parent c6aa10a0a1fcfa9dc4e6522b690504d67d983855
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Fri,  3 Jul 2026 13:30:46 +0200
       
       improve coverage tests
       
       Diffstat:
         M run_coverage.sh                     |      79 +++++++++++++++++++++----------
       
       1 file changed, 53 insertions(+), 26 deletions(-)
       ---
   DIR diff --git a/run_coverage.sh b/run_coverage.sh
       @@ -1,44 +1,71 @@
        #!/bin/sh
        bin="$HOME/p/webdump/webdump"
        
       +if ! test -x "$bin"; then
       +        echo "$bin must exist and executable" >&2
       +        exit 1
       +fi
       +
        # must be an absolute URI
        echo | "$bin" -b invalid 2>/dev/null
        
        # invalid option
        echo | "$bin" -X 2>/dev/null
        
       -baseurl="http://example.com"
       +# invalid selector (too deep, > 32 nodes).
       +echo | "$bin" -s 'a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h' 2>/dev/null
       +echo | "$bin" -u 'a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h' 2>/dev/null
       +
       +# invalid number
       +echo | "$bin" -w plop 2>/dev/null
       +
       +run() {
       +        echo -n "running $bin $@ < $f" >&2
       +        "$bin" "$@" >/dev/null 2>/dev/null
       +        echo ": $?" >&2
       +}
       +
       +# test base URL combinations.
       +while read -r baseurl; do
        
        for f in realworld/* tests/*; do
       -        "$bin" -r < "$f" || exit $?
       -        "$bin" -b "$baseurl" -r < "$f" || exit $?
       -        "$bin" -l -i -b "$baseurl" -r < "$f" || exit $?
       -        "$bin" -a -l -i -b "$baseurl" -r < "$f" || exit $?
       -        "$bin" -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -a -I -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -8 -a -I -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -8 -d -a -I -l -i -b "$baseurl" < "$f" || exit $?
       +        run -r < "$f"
       +        run -b "$baseurl" -r < "$f"
       +        run -l -i -b "$baseurl" -r < "$f"
       +        run -a -l -i -b "$baseurl" -r < "$f"
       +        run -a -l -i -b "$baseurl" < "$f"
       +        run -a -I -l -i -b "$baseurl" < "$f"
       +        run -8 -a -I -l -i -b "$baseurl" < "$f"
       +        run -8 -d -a -I -l -i -b "$baseurl" < "$f"
        
                # very short linewrap
       -        "$bin" -w 10 -r < "$f" || exit $?
       +        run -w 10 -r < "$f"
        
                # selectors
       -        "$bin" -s 'main' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -s 'main.class' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -s 'main#id' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -s 'main@1' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -s 'a, td' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -s 'a,td' -a -l -i -b "$baseurl" < "$f" || exit $?
       -
       -        "$bin" -u 'main' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -u 'main.class' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -u 'main#id' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -u 'main@1' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -u 'a, td' -a -l -i -b "$baseurl" < "$f" || exit $?
       -        "$bin" -u 'a,td' -a -l -i -b "$baseurl" < "$f" || exit $?
       +        run -s 'main' -a -l -i -b "$baseurl" < "$f"
       +        run -s 'main.class' -a -l -i -b "$baseurl" < "$f"
       +        run -s 'main#id' -a -l -i -b "$baseurl" < "$f"
       +        run -s 'main@1' -a -l -i -b "$baseurl" < "$f"
       +        run -s 'a, td' -a -l -i -b "$baseurl" < "$f"
       +        run -s 'a,td' -a -l -i -b "$baseurl" < "$f"
       +
       +        run -u 'main' -a -l -i -b "$baseurl" < "$f"
       +        run -u 'main.class' -a -l -i -b "$baseurl" < "$f"
       +        run -u 'main#id' -a -l -i -b "$baseurl" < "$f"
       +        run -u 'main@1' -a -l -i -b "$baseurl" < "$f"
       +        run -u 'a, td' -a -l -i -b "$baseurl" < "$f"
       +        run -u 'a,td' -a -l -i -b "$baseurl" < "$f"
        
                # -x
       -        "$bin" -8 -d -a -I -l -i -x < "$f" || exit $?
       -        "$bin" -8 -d -a -I -l -i -x -b "$baseurl" < "$f" || exit $?
       -        "$bin" -x -s 'main' -a -l -i -b "$baseurl" < "$f" || exit $?
       +        run -8 -d -a -I -l -i -x < "$f"
       +        run -8 -d -a -I -l -i -x -b "$baseurl" < "$f"
       +        run -x -s 'main' -a -l -i -b "$baseurl" < "$f"
        done
       +
       +done <<!EOF
       +http://example.com
       +gopher://codemadness.org/1/git/sfeed
       +file://host/path
       +mysql://user@localhost:3306?get-server-public-key=true
       +ftp://user:password@[2001:db8::7]:2121/rfc/rfc1808.txt?q=bla#abc@def
       +!EOF