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