URI: 
       run_coverage.sh - webdump_tests - Testfiles for webdump
  HTML git clone git://git.codemadness.org/webdump_tests
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
       run_coverage.sh (4735B)
       ---
            1 #!/bin/sh
            2 bin="$HOME/p/webdump/webdump"
            3 expectstatus="0"
            4 
            5 if ! test -x "$bin"; then
            6         echo "$bin must exist and executable" >&2
            7         exit 1
            8 fi
            9 
           10 test_usage_fail() {
           11         cmd="$@"
           12         echo | "$bin" "$@" #2>/dev/null
           13         statuscode="$?"
           14         if test "$statuscode" = "0"; then
           15                 echo "command should have failed but didn't: $bin $cmd" >&2
           16                 exit 1
           17         fi
           18 }
           19 
           20 # must be an absolute URI
           21 test_usage_fail -b invalid
           22 
           23 # invalid option
           24 test_usage_fail -X
           25 
           26 # invalid selector (too deep, > 32 nodes).
           27 test_usage_fail -s 'one,two,three,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'
           28 test_usage_fail -u 'one,two,three,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'
           29 
           30 # 256 byte limit per tag name, index, id and class.
           31 test_usage_fail -s 'a012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
           32 test_usage_fail -s 'a.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
           33 test_usage_fail -s 'a#012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
           34 test_usage_fail -s 'a@012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
           35 
           36 # invalid number for term width.
           37 test_usage_fail -w plop
           38 
           39 run() {
           40 #        # with crude timing information.
           41 #        starttime=$(echo | ts -m '%.s')
           42 #        echo -n "running $bin $@ < $f" >&2
           43 #        "$bin" "$@" >/dev/null 2>/dev/null
           44 #        endtime=$(echo | ts -m '%.s')
           45 #        duration=$(echo "$endtime - $starttime" | bc)
           46 #        echo ": $?, ($duration)" >&2
           47 
           48         echo -n "running $bin $@ < $f" >&2
           49         "$bin" "$@" >/dev/null 2>/dev/null
           50         statuscode="$?"
           51         echo ": ${statuscode}" >&2
           52 
           53         if test "$statuscode" != "$expectstatus"; then
           54                 echo "FATAL"
           55                 exit 1
           56         fi
           57 }
           58 
           59 runtests() {
           60         baseurl="$1"
           61         f="$2"
           62 
           63         run -r < "$f"
           64         run -l -i < "$f"
           65         run -l -r < "$f"
           66         run -l -i -r < "$f"
           67         run -l -i -r -a < "$f"
           68 
           69         run -b "$baseurl" -r < "$f"
           70         run -l -i -b "$baseurl" -r < "$f"
           71         run -a -l -i -b "$baseurl" -r < "$f"
           72         run -a -l -i -b "$baseurl" < "$f"
           73         run -a -I -l -i -b "$baseurl" < "$f"
           74         run -8 -a -I -l -i -b "$baseurl" < "$f"
           75         run -8 -d -a -I -l -i -b "$baseurl" < "$f"
           76 
           77         # very short linewrap
           78         run -w 10 -r < "$f"
           79 
           80         # selectors
           81         run -s 'main' -a -l -i -b "$baseurl" < "$f"
           82         run -s 'main.class' -a -l -i -b "$baseurl" < "$f"
           83         run -s 'main#id' -a -l -i -b "$baseurl" < "$f"
           84         run -s 'main@1' -a -l -i -b "$baseurl" < "$f"
           85         run -s 'a, td' -a -l -i -b "$baseurl" < "$f"
           86         run -s 'a,td' -a -l -i -b "$baseurl" < "$f"
           87 
           88         run -u 'main' -a -l -i -b "$baseurl" < "$f"
           89         run -u 'main.class' -a -l -i -b "$baseurl" < "$f"
           90         run -u 'main#id' -a -l -i -b "$baseurl" < "$f"
           91         run -u 'main@1' -a -l -i -b "$baseurl" < "$f"
           92         run -u 'a, td' -a -l -i -b "$baseurl" < "$f"
           93         run -u 'a,td' -a -l -i -b "$baseurl" < "$f"
           94 
           95         # -x
           96         run -8 -d -a -I -l -i -x < "$f"
           97         run -8 -d -a -I -l -i -x -b "$baseurl" < "$f"
           98         run -x -s 'main' -a -l -i -b "$baseurl" < "$f"
           99 
          100         # OSC8
          101         run -o < "$f"
          102         run -o -l < "$f"
          103         run -o -i -l < "$f"
          104         run -o -r -l < "$f"
          105         run -o -r -i -l < "$f"
          106         run -o -b "$baseurl" -r < "$f"
          107         run -o -l -i -b "$baseurl" -r < "$f"
          108         run -o -a -l -i -b "$baseurl" -r < "$f"
          109         run -o -a -l -i -b "$baseurl" < "$f"
          110         run -o -a -I -l -i -b "$baseurl" < "$f"
          111         run -o -8 -a -I -l -i -b "$baseurl" < "$f"
          112         run -o -8 -d -a -I -l -i -b "$baseurl" < "$f"
          113 }
          114 
          115 baseurl="http://codemadness.org/"
          116 for f in realworld/* tests/*; do
          117         runtests "$baseurl" "$f"
          118 done
          119 
          120 # test base URL combinations for specific tests.
          121 while read -r baseurl; do
          122         for f in tests/urls.html tests/base.html; do
          123                 runtests "$baseurl" "$f"
          124         done
          125 done <<!EOF
          126 https://codemadness.org/
          127 http://codemadness.org/
          128 http://example.com
          129 gopher://codemadness.org/1/git/sfeed
          130 file://host/path
          131 mysql://user@localhost:3306?get-server-public-key=true
          132 ftp://user:password@[2001:db8::7]:2121/rfc/rfc1808.txt?q=bla#abc@def
          133 !EOF
          134 
          135 # these should fail:
          136 expectstatus="1"
          137 baseurl="http://codemadness.org/"
          138 for f in tests/shouldfail/*; do
          139         runtests "$baseurl" "$f"
          140 done