diff --git a/CHANGES b/CHANGES index 8e9467f..4166168 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,10 @@ Security: not given it logs to a file in . (cwd) only when it is not writable by other users. +Testing: + test.sh produces file results.txt with columns of test numbers, names, + and results. + ####################### V 1.8.0.2: Security: diff --git a/test.sh b/test.sh index 55abd17..759e42b 100755 --- a/test.sh +++ b/test.sh @@ -92,7 +92,7 @@ debug=$DEBUG [ "$DEFS" ] && echo "BASH_VERSION=\"$BASH_VERSION\"" >&2 -[ "$DEFS" ] && echo "ECHO_E=\"$ECHO_E\"" >&2 +[ "$DEFS" ] && echo "ECHO=\"$ECHO\"" >&2 UNAME=`uname` [ "$DEFS" ] && echo "UNAME=\"$UNAME\"" >&2 @@ -744,6 +744,8 @@ mkdir -p "$TD" echo "Using temp directory $TD" +RESULTS="$TD/results.txt" # file for list of results + case "$TESTS" in *%consistency%*) # test if addresses are sorted alphabetically: @@ -796,16 +798,40 @@ listFAIL= listCANT= namesFAIL= +ok () { + numOK=$((numOK+1)) + listOK="$listOK $N" + do_result OK +} + +cant () { + numCANT=$((numCANT+1)) + listCANT="$listCANT $N" + do_result CANT +} + +failed () { + numFAIL=$((numFAIL+1)) + listFAIL="$listFAIL $N" + do_result FAILED +} + +do_result () { + #echo "RESULTS=\"$RESULTS\"" >&2; exit + echo "$N $NAME $1" >>$RESULTS +} + #============================================================================== # test if selected socat features work ("FUNCTIONS") testecho () { local N="$1" - local title="$2" - local arg1="$3"; [ -z "$arg1" ] && arg1="-" - local arg2="$4"; [ -z "$arg2" ] && arg2="echo" - local opts="$5" - local T="$6"; [ -z "$T" ] && T=0 # fractional seconds + local NAME="$2" + local title="$3" + local arg1="$4"; [ -z "$arg1" ] && arg1="-" + local arg2="$5"; [ -z "$arg2" ] && arg2="echo" + local opts="$6" + local T="$7"; [ -z "$T" ] && T=0 # fractional seconds local tf="$td/test$N.stdout" local te="$td/test$N.stderr" local tdiff="$td/test$N.diff" @@ -825,22 +851,19 @@ testecho () { $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$TRACE $SOCAT $opts $arg1 $arg2" >&2 cat "$te" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "$tf" >"$tdiff" 2>&1; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$SOCAT $opts $arg1 $arg2" >&2; fi if [ -n "$debug" ]; then cat $te >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED:\n" echo "$TRACE $SOCAT $opts $arg1 $arg2" >&2 cat "$te" >&2 echo diff: >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND } @@ -849,11 +872,12 @@ testecho () { # flush of od buffers testod () { local num="$1" - local title="$2" - local arg1="$3"; [ -z "$arg1" ] && arg1="-" - local arg2="$4"; [ -z "$arg2" ] && arg2="echo" - local opts="$5" - local T="$6"; [ -z "$T" ] && T=0 # fractional seconds + local NAME="$2" + local title="$3" + local arg1="$4"; [ -z "$arg1" ] && arg1="-" + local arg2="$5"; [ -z "$arg2" ] && arg2="echo" + local opts="$6" + local T="$7"; [ -z "$T" ] && T=0 # fractional seconds local tf="$td/test$N.stdout" local te="$td/test$N.stderr" local tr="$td/test$N.ref" @@ -868,21 +892,18 @@ testod () { $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$TRACE $SOCAT $opts $arg1 $arg2" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $num" + failed # elif echo "$daout" |diff - "$tf" >"$tdiff" 2>&1; then elif diff "$tr" "$tf" >"$tdiff" 2>&1; then $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED: diff:\n" echo "$TRACE $SOCAT $opts $arg1 $arg2" cat "$te" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $num" + failed fi fi # NUMCOND } @@ -1937,7 +1958,7 @@ NAME=UNISTDIO case "$TESTS " in *%$N%*|*%functions%*|*%stdio%*|*%$NAME%*) TEST="$NAME: unidirectional throughput from stdin to stdout" -testecho "$N" "$TEST" "stdin" "stdout" "$opts -u" +testecho "$N" "$NAME" "$TEST" "stdin" "stdout" "$opts -u" esac N=$((N+1)) @@ -1948,7 +1969,7 @@ NAME=UNPIPESTDIO case "$TESTS" in *%$N%*|*%functions%*|*%stdio%*|*%$NAME%*) TEST="$NAME: stdio with simple echo via internal pipe" -testecho "$N" "$TEST" "stdio" "pipe" "$opts" +testecho "$N" "$NAME" "$TEST" "stdio" "pipe" "$opts" esac N=$((N+1)) @@ -1957,7 +1978,7 @@ NAME=UNPIPESHORT case "$TESTS" in *%$N%*|*%functions%*|*%stdio%*|*%$NAME%*) TEST="$NAME: short form of stdio ('-') with simple echo via internal pipe" -testecho "$N" "$TEST" "-" "pipe" "$opts" +testecho "$N" "$NAME" "$TEST" "-" "pipe" "$opts" esac N=$((N+1)) @@ -1966,7 +1987,7 @@ NAME=DUALSTDIO case "$TESTS" in *%$N%*|*%functions%*|*%stdio%*|*%$NAME%*) TEST="$NAME: splitted form of stdio ('stdin!!stdout') with simple echo via internal pipe" -testecho "$N" "$TEST" "stdin!!stdout" "pipe" "$opts" +testecho "$N" "$NAME" "$TEST" "stdin!!stdout" "pipe" "$opts" esac N=$((N+1)) @@ -1975,7 +1996,7 @@ NAME=DUALSHORTSTDIO case "$TESTS" in *%$N%*|*%functions%*|*%stdio%*|*%$NAME%*) TEST="$NAME: short splitted form of stdio ('-!!-') with simple echo via internal pipe" -testecho "$N" "$TEST" "-!!-" "pipe" "$opts" +testecho "$N" "$NAME" "$TEST" "-!!-" "pipe" "$opts" esac N=$((N+1)) @@ -1984,7 +2005,7 @@ NAME=DUALFDS case "$TESTS" in *%$N%*|*%functions%*|*%fd%*|*%$NAME%*) TEST="$NAME: file descriptors with simple echo via internal pipe" -testecho "$N" "$TEST" "0!!1" "pipe" "$opts" +testecho "$N" "$NAME" "$TEST" "0!!1" "pipe" "$opts" esac N=$((N+1)) @@ -1996,7 +2017,7 @@ TEST="$NAME: simple echo via named pipe" # with MacOS, this test hangs if nonblock is not used. Is an OS bug. tp="$td/pipe$N" # note: the nonblock is required by MacOS 10.1(?), otherwise it hangs (OS bug?) -testecho "$N" "$TEST" "" "pipe:$tp,nonblock" "$opts" +testecho "$N" "$NAME" "$TEST" "" "pipe:$tp,nonblock" "$opts" esac N=$((N+1)) @@ -2006,7 +2027,7 @@ case "$TESTS" in *%$N%*|*%functions%*|*%pipe%*|*%$NAME%*) TEST="$NAME: simple echo via named pipe, specified twice" tp="$td/pipe$N" -testecho "$N" "$TEST" "" "pipe:$tp,nonblock!!pipe:$tp" "$opts" +testecho "$N" "$NAME" "$TEST" "" "pipe:$tp,nonblock!!pipe:$tp" "$opts" esac N=$((N+1)) @@ -2016,7 +2037,7 @@ case "$TESTS" in *%$N%*|*%functions%*|*%engine%*|*%file%*|*%ignoreeof%*|*%$NAME%*) TEST="$NAME: simple echo via file" tf="$td/file$N" -testecho "$N" "$TEST" "" "$tf,ignoreeof!!$tf" "$opts" +testecho "$N" "$NAME" "$TEST" "" "$tf,ignoreeof!!$tf" "$opts" esac N=$((N+1)) @@ -2025,7 +2046,7 @@ NAME=EXECSOCKETPAIR case "$TESTS" in *%$N%*|*%functions%*|*%exec%*|*%socketpair%*|*%$NAME%*) TEST="$NAME: simple echo via exec of cat with socketpair" -testecho "$N" "$TEST" "" "EXEC:$CAT" "$opts" +testecho "$N" "$NAME" "$TEST" "" "EXEC:$CAT" "$opts" esac N=$((N+1)) @@ -2033,7 +2054,7 @@ NAME=SYSTEMSOCKETPAIR case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%socketpair%*|*%$NAME%*) TEST="$NAME: simple echo via system() of cat with socketpair" -testecho "$N" "$TEST" "" "SYSTEM:$CAT" "$opts" "$val_t" +testecho "$N" "$NAME" "$TEST" "" "SYSTEM:$CAT" "$opts" "$val_t" esac N=$((N+1)) @@ -2042,7 +2063,7 @@ NAME=EXECPIPES case "$TESTS" in *%$N%*|*%functions%*|*%exec%*|*%pipe%*|*%$NAME%*) TEST="$NAME: simple echo via exec of cat with pipes" -testecho "$N" "$TEST" "" "EXEC:$CAT,pipes" "$opts" +testecho "$N" "$NAME" "$TEST" "" "EXEC:$CAT,pipes" "$opts" esac N=$((N+1)) @@ -2050,7 +2071,7 @@ NAME=SYSTEMPIPES case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%pipes%*|*%$NAME%*) TEST="$NAME: simple echo via system() of cat with pipes" -testecho "$N" "$TEST" "" "SYSTEM:$CAT,pipes" "$opts" +testecho "$N" "$NAME" "$TEST" "" "SYSTEM:$CAT,pipes" "$opts" esac N=$((N+1)) @@ -2062,10 +2083,9 @@ TEST="$NAME: simple echo via exec of cat with pseudo terminal" if ! eval $NUMCOND; then :; elif ! testfeats pty >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else -testecho "$N" "$TEST" "" "EXEC:$CAT,pty,$PTYOPTS,$PTYOPTS2" "$opts" +testecho "$N" "$NAME" "$TEST" "" "EXEC:$CAT,pty,$PTYOPTS,$PTYOPTS2" "$opts" fi esac N=$((N+1)) @@ -2077,10 +2097,9 @@ TEST="$NAME: simple echo via system() of cat with pseudo terminal" if ! eval $NUMCOND; then :; elif ! testfeats pty >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else -testecho "$N" "$TEST" "" "SYSTEM:$CAT,pty,$PTYOPTS,$PTYOPTS2" "$opts" +testecho "$N" "$NAME" "$TEST" "" "SYSTEM:$CAT,pty,$PTYOPTS,$PTYOPTS2" "$opts" fi esac N=$((N+1)) @@ -2090,7 +2109,7 @@ NAME=SYSTEMPIPESFDS case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%pipes%*|*%$NAME%*) TEST="$NAME: simple echo via system() of cat with pipes, non stdio" -testecho "$N" "$TEST" "" "SYSTEM:$CAT>&9 <&8,pipes,fdin=8,fdout=9" "$opts" +testecho "$N" "$NAME" "$TEST" "" "SYSTEM:$CAT>&9 <&8,pipes,fdin=8,fdout=9" "$opts" esac N=$((N+1)) @@ -2099,7 +2118,7 @@ NAME=DUALSYSTEMFDS case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%socketpair%*|*%$NAME%*) TEST="$NAME: echo via dual system() of cat" -testecho "$N" "$TEST" "SYSTEM:$CAT>&6,fdout=6!!system:$CAT<&7,fdin=7" "" "$opts" "$val_t" +testecho "$N" "$NAME" "$TEST" "SYSTEM:$CAT>&6,fdout=6!!system:$CAT<&7,fdin=7" "" "$opts" "$val_t" esac N=$((N+1)) @@ -2112,7 +2131,7 @@ NAME=EXECSOCKETPAIRFLUSH case "$TESTS" in *%$N%*|*%functions%*|*%exec%*|*%socketpair%*|*%$NAME%*) TEST="$NAME: call to od via exec with socketpair" -testod "$N" "$TEST" "" "EXEC:$OD_C" "$opts" +testod "$N" "$NAME" "$TEST" "" "EXEC:$OD_C" "$opts" esac N=$((N+1)) @@ -2120,7 +2139,7 @@ NAME=SYSTEMSOCKETPAIRFLUSH case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%socketpair%*|*%$NAME%*) TEST="$NAME: call to od via system() with socketpair" -testod "$N" "$TEST" "" "SYSTEM:$OD_C" "$opts" $val_t +testod "$N" "$NAME" "$TEST" "" "SYSTEM:$OD_C" "$opts" $val_t esac N=$((N+1)) @@ -2129,7 +2148,7 @@ NAME=EXECPIPESFLUSH case "$TESTS" in *%$N%*|*%functions%*|*%exec%*|*%pipes%*|*%$NAME%*) TEST="$NAME: call to od via EXEC with pipes" -testod "$N" "$TEST" "" "EXEC:$OD_C,pipes" "$opts" +testod "$N" "$NAME" "$TEST" "" "EXEC:$OD_C,pipes" "$opts" esac N=$((N+1)) @@ -2137,7 +2156,7 @@ NAME=SYSTEMPIPESFLUSH case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%pipes%*|*%$NAME%*) TEST="$NAME: call to od via system() with pipes" -testod "$N" "$TEST" "" "SYSTEM:$OD_C,pipes" "$opts" "$val_t" +testod "$N" "$NAME" "$TEST" "" "SYSTEM:$OD_C,pipes" "$opts" "$val_t" esac N=$((N+1)) @@ -2149,10 +2168,9 @@ N=$((N+1)) #TEST="$NAME: call to od via exec with pseudo terminal" #if ! testfeats pty >/dev/null; then # $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" +# cant #else -#testod "$N" "$TEST" "" "exec:$OD_C,pty,$PTYOPTS" "$opts" +#testod "$N" "$NAME" "$TEST" "" "exec:$OD_C,pty,$PTYOPTS" "$opts" #fi #esac #N=$((N+1)) @@ -2165,10 +2183,9 @@ N=$((N+1)) #TEST="$NAME: call to od via system() with pseudo terminal" #if ! testfeats pty >/dev/null; then # $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" +# cant #else -#testod "$N" "$TEST" "" "system:$OD_C,pty,$PTYOPTS" "$opts" +#testod "$N" "$NAME" "$TEST" "" "system:$OD_C,pty,$PTYOPTS" "$opts" #fi #esac #N=$((N+1)) @@ -2178,7 +2195,7 @@ NAME=SYSTEMPIPESFDSFLUSH case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%pipes%*|*%$NAME%*) TEST="$NAME: call to od via system() with pipes, non stdio" -testod "$N" "$TEST" "" "SYSTEM:$OD_C>&9 <&8,pipes,fdin=8,fdout=9" "$opts" "$val_t" +testod "$N" "$NAME" "$TEST" "" "SYSTEM:$OD_C>&9 <&8,pipes,fdin=8,fdout=9" "$opts" "$val_t" esac N=$((N+1)) @@ -2186,7 +2203,7 @@ NAME=DUALSYSTEMFDSFLUSH case "$TESTS" in *%$N%*|*%functions%*|*%system%*|*%pipes%*|*%$NAME%*) TEST="$NAME: call to od via dual system()" -testod "$N" "$TEST" "SYSTEM:$OD_C>&6,fdout=6!!SYSTEM:$CAT<&7,fdin=7" "pipe" "$opts" "$val_t" +testod "$N" "$NAME" "$TEST" "SYSTEM:$OD_C>&6,fdout=6!!SYSTEM:$CAT<&7,fdin=7" "pipe" "$opts" "$val_t" esac N=$((N+1)) @@ -2198,18 +2215,15 @@ TEST="$NAME: simple echo via self receiving raw IPv4 protocol" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats rawip) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}RAWIP not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "IP4:127.0.0.1:$IPPROTO" "$opts" + testecho "$N" "$NAME" "$TEST" "" "IP4:127.0.0.1:$IPPROTO" "$opts" fi esac N=$((N+1)) @@ -2221,18 +2235,15 @@ TEST="$NAME: simple echo via self receiving raw IP protocol, v4 by target" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats rawip) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}RAWIP not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "IP:127.0.0.1:$IPPROTO" "$opts" + testecho "$N" "$NAME" "$TEST" "" "IP:127.0.0.1:$IPPROTO" "$opts" fi ;; # NUMCOND, feats esac N=$((N+1)) @@ -2244,18 +2255,15 @@ TEST="$NAME: simple echo via self receiving raw IPv6 protocol" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats rawip) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}RAWIP not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "IP6:[::1]:$IPPROTO" "$opts" + testecho "$N" "$NAME" "$TEST" "" "IP6:[::1]:$IPPROTO" "$opts" fi ;; # NUMCOND, feats esac N=$((N+1)) @@ -2267,18 +2275,15 @@ TEST="$NAME: simple echo via self receiving raw IP protocol, v6 by target" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats rawip) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}RAWIP not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "IP:[::1]:$IPPROTO" "$opts" + testecho "$N" "$NAME" "$TEST" "" "IP:[::1]:$IPPROTO" "$opts" fi esac N=$((N+1)) @@ -2297,12 +2302,11 @@ TEST="$NAME: echo via self connection of TCP IPv4 socket" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}only on Linux$NORMAL\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4 # provide free port number in $PORT #ts="127.0.0.1:$tsl" - testecho "$N" "$TEST" "" "TCP:$SECONDADDR:$PORT,sp=$PORT,bind=$SECONDADDR,reuseaddr" "$opts" + testecho "$N" "$NAME" "$TEST" "" "TCP:$SECONDADDR:$PORT,sp=$PORT,bind=$SECONDADDR,reuseaddr" "$opts" fi esac N=$((N+1)) @@ -2315,11 +2319,10 @@ case "$TESTS" in TEST="$NAME: echo via self connection of UDP IPv4 socket" if [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}only on Linux$NORMAL\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4 # provide free port number in $PORT - testecho "$N" "$TEST" "" "UDP:$SECONDADDR:$PORT,sp=$PORT,bind=$SECONDADDR" "$opts" + testecho "$N" "$NAME" "$TEST" "" "UDP:$SECONDADDR:$PORT,sp=$PORT,bind=$SECONDADDR" "$opts" fi esac fi # NUMCOND @@ -2333,16 +2336,14 @@ TEST="$NAME: echo via self connection of UDP IPv6 socket" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats udp ip6 >/dev/null || ! runsudp6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/file$N" newport udp6 # provide free port number in $PORT - testecho "$N" "$TEST" "" "UDP6:[::1]:$PORT,sp=$PORT,bind=[::1]" "$opts" + testecho "$N" "$NAME" "$TEST" "" "UDP6:[::1]:$PORT,sp=$PORT,bind=[::1]" "$opts" fi esac N=$((N+1)) @@ -2356,7 +2357,7 @@ TEST="$NAME: echo via two unidirectional UDP IPv4 sockets" tf="$td/file$N" newport udp4; PORT1=$PORT # get free port newport udp4; PORT2=$PORT # get free port -testecho "$N" "$TEST" "" "UDP:127.0.0.1:$PORT2,sp=$PORT1!!UDP:127.0.0.1:$PORT1,sp=$PORT2" "$opts" +testecho "$N" "$NAME" "$TEST" "" "UDP:127.0.0.1:$PORT2,sp=$PORT1!!UDP:127.0.0.1:$PORT1,sp=$PORT2" "$opts" esac fi # NUMCOND N=$((N+1)) @@ -2392,8 +2393,7 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" echo "rc=$rc2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" @@ -2401,13 +2401,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $bg 2>/dev/null esac @@ -2426,8 +2424,7 @@ elif ! cond=$(checkconds "" "" "" \ "so-reuseaddr" \ "tcp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2448,9 +2445,7 @@ if [ $? -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -2459,17 +2454,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid1 2>/dev/null wait @@ -2486,20 +2478,16 @@ TEST="$NAME: echo via connection to TCP V6 socket" if ! eval $NUMCOND; then :; elif ! F=$(testfeats IP6 TCP LISTEN STDIO PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs - TCP6-LISTEN PIPE STDIN STDOUT TCP6-CONNECT); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions so-reuseaddr ) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2520,8 +2508,7 @@ if [ $? -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" echo "$CMD1 &" @@ -2530,16 +2517,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo diff: cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null fi @@ -2556,20 +2541,16 @@ TEST="$NAME: echo via connection to TCP socket, v4 by target" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO PIPE IP4 TCP LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs TCP TCP-LISTEN STDIN STDOUT PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions pf) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2590,9 +2571,7 @@ if [ $? -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" @@ -2600,17 +2579,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null fi @@ -2626,20 +2602,16 @@ TEST="$NAME: echo via connection to TCP socket, v6 by target" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO PIPE IP6 TCP LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs TCP TCP-LISTEN STDIN STDOUT PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions pf) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2660,9 +2632,7 @@ if [ $? -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" @@ -2670,17 +2640,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null fi @@ -2698,16 +2665,13 @@ TEST="$NAME: option ipv6-v6only=0 listens on IPv4" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions ipv6-v6only); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2727,18 +2691,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null fi @@ -2755,16 +2716,13 @@ TEST="$NAME: option ipv6-v6only=1 does not listen on IPv4" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions ipv6-v6only); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2782,17 +2740,14 @@ echo "$da" |$CMD2 >>"$tf" 2>>"${te}2" if [ $? -eq 0 ]; then $PRINTF "$FAILED:\n" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED:\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid; wait wait @@ -2808,16 +2763,13 @@ TEST="$NAME: env SOCAT_DEFAULT_LISTEN_IP for IPv4 preference on listen" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runstcp6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions ipv6-v6only); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2837,18 +2789,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi @@ -2862,12 +2811,10 @@ TEST="$NAME: env SOCAT_DEFAULT_LISTEN_IP for IPv6 preference on listen" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2888,8 +2835,7 @@ if [ $? -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff):\n" echo "SOCAT_DEFAULT_LISTEN_IP=6 $CMD1 &" @@ -2898,16 +2844,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi @@ -2921,16 +2865,13 @@ TEST="$NAME: option -4 for IPv4 preference on listen" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions ipv6-v6only); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -2950,18 +2891,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi @@ -2975,12 +2913,10 @@ TEST="$NAME: option -6 for IPv6 preference on listen" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -3000,18 +2936,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait wait @@ -3026,16 +2959,13 @@ TEST="$NAME: pf=4 overrides option -6 on listen" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions ipv6-v6only); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -3055,18 +2985,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi @@ -3080,12 +3007,10 @@ TEST="$NAME: pf=6 overrides option -4 on listen" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -3105,18 +3030,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi ;; # NUMCOND, feats @@ -3149,8 +3071,7 @@ if [ $rc2 -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -3158,13 +3079,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3178,8 +3097,7 @@ TEST="$NAME: echo via connection to UDP V6 socket" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -3201,18 +3119,15 @@ if [ $rc2 -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # ! testfeats esac @@ -3237,18 +3152,15 @@ if [ $? -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! diff "$tf1" "$tf2" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND esac @@ -3278,8 +3190,7 @@ if [ ! -p "$tp" ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else #echo "$da" >"$tp" # might hang forever echo "$da" >"$tp" & export pid=$!; (relsleep 1; kill $pid 2>/dev/null) & @@ -3295,13 +3206,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" fi - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi wait @@ -3336,8 +3245,7 @@ if [ $? -ne 0 ]; then cat "${te}s" echo "$CMD" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then kill "$pids" 2>/dev/null $PRINTF "$FAILED:\n" @@ -3346,13 +3254,11 @@ elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then echo "$CMD" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) wait fi # NUMCOND @@ -3385,8 +3291,7 @@ if [ $? -ne 0 ]; then cat "${te}s" echo "$CMD" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then kill "$pids" 2>/dev/null $PRINTF "$FAILED:\n" @@ -3395,13 +3300,11 @@ elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then echo "$CMD" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) wait fi # NUMCOND @@ -3435,8 +3338,7 @@ if [ $? -ne 0 ]; then cat "${te}s" echo "$CMD" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da1" |diff - "${tf}" >"$tdiff"; then $PRINTF "$FAILED:\n" echo "$SRV &" @@ -3444,13 +3346,11 @@ elif ! echo "$da1" |diff - "${tf}" >"$tdiff"; then echo "$CMD" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) kill "$pids" 2>/dev/null; wait fi ;; # NUMCOND @@ -3480,13 +3380,11 @@ kill $bg 2>/dev/null; wait if ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - listFAIL="$listFAIL $N" - numFAIL=$((numFAIL+1)) + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3514,13 +3412,11 @@ kill $bg 2>/dev/null if ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - listFAIL="$listFAIL $N" - numFAIL=$((numFAIL+1)) + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi wait fi ;; # NUMCOND @@ -3543,13 +3439,11 @@ if [ -s "$te" ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3563,8 +3457,7 @@ TEST="$NAME: generation of pty for other processes" if ! eval $NUMCOND; then :; elif ! testfeats pty >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tt="$td/pty$N" tf="$td/test$N.stdout" @@ -3590,13 +3483,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi ;; # NUMCOND, feats @@ -3625,13 +3516,11 @@ if ! [ $rc0 = 0 ] || echo "$CMD" cat "$te" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3657,13 +3546,11 @@ if ! echo "$da" |$CMD >$tf 2>"$te" || echo "$CMD" cat "$te" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3674,7 +3561,7 @@ NAME=RIGHTTOLEFT case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: unidirectional throughput from stdin to stdout, right to left" -testecho "$N" "$TEST" "stdout" "stdin" "$opts -U" +testecho "$N" "$NAME" "$TEST" "stdout" "stdin" "$opts -U" esac N=$((N+1)) @@ -3686,12 +3573,10 @@ case "$TESTS" in if ! eval $NUMCOND; then : elif ! F=$(testfeats STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else TEST="$NAME: child process default properties" tf="$td/test$N.stdout" @@ -3711,14 +3596,12 @@ then $PRINTF "$FAILED:\n" echo "$CMD" cat "$te" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3747,12 +3630,10 @@ then $PRINTF "$FAILED\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3781,12 +3662,10 @@ then $PRINTF "$FAILED\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -3800,16 +3679,13 @@ TEST="$NAME: openssl connect" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -3835,13 +3711,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi ;; # NUMCOND, feats @@ -3856,12 +3730,10 @@ TEST="$NAME: openssl listen" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -3883,13 +3755,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -3904,12 +3774,10 @@ TEST="$NAME: openssl listen" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -3931,13 +3799,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -3970,12 +3836,10 @@ TEST="$NAME: $TESTKEYW half close" if ! eval $NUMCOND; then :; elif [ "$FEAT" != ',' ] && ! testfeats "$FEAT" >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $FEAT not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runs$RUNS >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$RUNS not available on host${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -3998,8 +3862,7 @@ if ! echo "$da" |$OD_C |diff - "$tf" >"$tdiff"; then echo "$CMD" cat "${te}" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then @@ -4007,8 +3870,7 @@ else echo " $CMD" fi if [ -n "$debug" ]; then cat "${te}2" "${te}"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi wait fi ;; # NUMCOND, feats @@ -4038,12 +3900,10 @@ TEST="$NAME: OpenSSL server authentication (hostname)" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -4066,13 +3926,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD1" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4087,12 +3945,10 @@ TEST="$NAME: openssl client authentication" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -4115,13 +3971,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4136,16 +3990,13 @@ TEST="$NAME: OpenSSL+FIPS client and server authentication" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testoptions fips >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL/FIPS not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else OPENSSL_FIPS=1 gentestcert testsrvfips OPENSSL_FIPS=1 gentestcert testclifips @@ -4168,13 +4019,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4190,16 +4039,13 @@ TEST="$NAME: OpenSSL compression" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testoptions openssl-compress >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL compression option not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv printf "test $F_n $TEST... " $N @@ -4231,13 +4077,11 @@ else cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -4251,12 +4095,10 @@ TEST="$NAME: socks4 connect over TCP/IPv4" if ! eval $NUMCOND; then :; elif ! testfeats socks4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SOCKS4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -4278,13 +4120,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4299,12 +4139,10 @@ TEST="$NAME: socks4 connect over TCP/IPv6" if ! eval $NUMCOND; then :; elif ! testfeats socks4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SOCKS4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -4327,16 +4165,14 @@ if ! echo "$da" |diff - "${tf}1" >"$tdiff"; then cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4352,12 +4188,10 @@ TEST="$NAME: socks4a connect over TCP/IPv4" if ! eval $NUMCOND; then :; elif ! testfeats socks4a >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SOCKS4A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -4379,13 +4213,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4400,12 +4232,10 @@ TEST="$NAME: socks4a connect over TCP/IPv6" if ! eval $NUMCOND; then :; elif ! testfeats socks4a >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SOCKS4A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -4427,13 +4257,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4449,12 +4277,10 @@ TEST="$NAME: proxy connect over TCP/IPv4" if ! eval $NUMCOND; then :; elif ! testfeats proxy >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PROXY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.sh" tf="$td/test$N.stdout" @@ -4477,13 +4303,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4498,12 +4322,10 @@ TEST="$NAME: proxy connect over TCP/IPv6" if ! eval $NUMCOND; then :; elif ! testfeats proxy >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PROXY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.sh" tf="$td/test$N.stdout" @@ -4526,13 +4348,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4566,18 +4386,15 @@ if [ $? -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -4588,7 +4405,7 @@ NAME=EXECCATNOFORK case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: simple echo via exec of cat with nofork" -testecho "$N" "$TEST" "" "EXEC:$CAT,nofork" "$opts" +testecho "$N" "$NAME" "$TEST" "" "EXEC:$CAT,nofork" "$opts" esac N=$((N+1)) @@ -4597,7 +4414,7 @@ NAME=SYSTEMCATNOFORK case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: simple echo via system() of cat with nofork" -testecho "$N" "$TEST" "" "SYSTEM:$CAT,nofork" "$opts" +testecho "$N" "$NAME" "$TEST" "" "SYSTEM:$CAT,nofork" "$opts" esac N=$((N+1)) @@ -4606,7 +4423,7 @@ NAME=NOFORKSETSID case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: simple echo via exec() of cat with nofork and setsid" -testecho "$N" "$TEST" "" "SYSTEM:$CAT,nofork,setsid" "$opts" +testecho "$N" "$NAME" "$TEST" "" "SYSTEM:$CAT,nofork,setsid" "$opts" esac N=$((N+1)) @@ -4622,12 +4439,10 @@ N=$((N+1)) #echo "$da" |$TRACE $SOCAT stdin!!stdout UDP:$ts >"$tf" #if [ $? -eq 0 ] && echo "$da" |diff "$tf" -; then # $ECHO "... test $N succeeded" -# numOK=$((numOK+1)) -# listOK="$listOK $N" +# ok #else # $ECHO "*** test $N $FAILED" -# numFAIL=$((numFAIL+1)) -# listFAIL="$listFAIL $N" +# failed #fi #fi ;; # NUMCOND #N=$((N+1)) @@ -4642,12 +4457,10 @@ N=$((N+1)) #echo "$da" |$TRACE $SOCAT - FILE:$tf.tmp,ignoreeof >"$tf" #if [ $? -eq 0 ] && echo "$da" |diff "$tf" -; then # $ECHO "... test $N succeeded" -# numOK=$((numOK+1)) -# listOK="$listOK $N" +# ok #else # $ECHO "*** test $N $FAILED" -# numFAIL=$((numFAIL+1)) -# listFAIL="$listFAIL $N" +# failed #fi #fi ;; # NUMCOND @@ -4678,13 +4491,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4724,13 +4535,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "$te" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi wait MICROS=$SAVEMICS @@ -4746,8 +4555,7 @@ TEST="$NAME: proxy connect accepts status with multiple spaces" if ! eval $NUMCOND; then :; elif ! testfeats proxy >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PROXY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.sh" tf="$td/test$N.stdout" @@ -4771,16 +4579,14 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" >&2 echo "diff:" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$debug" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$debug" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -4804,19 +4610,16 @@ CMD="$TRACE $SOCAT $opts -u /dev/null -,setlk" $CMD <"$ff" 2>"$te" if [ "$?" -eq 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else if [ "$UNAME" = "Linux" ]; then $PRINTF "$FAILED\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "${YELLOW}failed (don't care)${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant fi fi fi ;; # NUMCOND @@ -4828,7 +4631,7 @@ NAME=SINGLEEXECOUTSOCKETPAIR case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: inheritance of stdout to single exec with socketpair" -testecho "$N" "$TEST" "-!!exec:cat" "" "$opts" 1 +testecho "$N" "$NAME" "$TEST" "-!!exec:cat" "" "$opts" 1 esac N=$((N+1)) @@ -4836,7 +4639,7 @@ NAME=SINGLEEXECOUTPIPE case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: inheritance of stdout to single exec with pipe" -testecho "$N" "$TEST" "-!!exec:cat,pipes" "" "$opts" 1 +testecho "$N" "$NAME" "$TEST" "-!!exec:cat,pipes" "" "$opts" 1 esac N=$((N+1)) @@ -4847,10 +4650,9 @@ TEST="$NAME: inheritance of stdout to single exec with pty" if ! eval $NUMCOND; then :; elif ! testfeats pty >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else -testecho "$N" "$TEST" "-!!exec:cat,pty,raw" "" "$opts" 1 +testecho "$N" "$NAME" "$TEST" "-!!exec:cat,pty,raw" "" "$opts" 1 fi ;; # NUMCOND, feats esac N=$((N+1)) @@ -4859,7 +4661,7 @@ NAME=SINGLEEXECINSOCKETPAIR case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: inheritance of stdin to single exec with socketpair" -testecho "$N" "$TEST" "exec:cat!!-" "" "$opts" +testecho "$N" "$NAME" "$TEST" "exec:cat!!-" "" "$opts" esac N=$((N+1)) @@ -4867,7 +4669,7 @@ NAME=SINGLEEXECINPIPE case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: inheritance of stdin to single exec with pipe" -testecho "$N" "$TEST" "exec:cat,pipes!!-" "" "$opts" +testecho "$N" "$NAME" "$TEST" "exec:cat,pipes!!-" "" "$opts" esac N=$((N+1)) @@ -4878,10 +4680,9 @@ TEST="$NAME: inheritance of stdin to single exec with pty, with delay" if ! eval $NUMCOND; then :; elif ! testfeats pty >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else -testecho "$N" "$TEST" "exec:cat,pty,raw!!-" "" "$opts" $MISCDELAY +testecho "$N" "$NAME" "$TEST" "exec:cat,pty,raw!!-" "" "$opts" $MISCDELAY fi ;; # NUMCOND, feats esac N=$((N+1)) @@ -4893,11 +4694,10 @@ TEST="$NAME: inheritance of stdin to single exec with pty" if ! eval $NUMCOND; then :; elif ! testfeats pty >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PTY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # T value needed (only) by AIX -testecho "$N" "$TEST" "exec:cat,pty,raw!!-" "" "$opts" 0.1 +testecho "$N" "$NAME" "$TEST" "exec:cat,pty,raw!!-" "" "$opts" 0.1 fi ;; # NUMCOND, feats esac N=$((N+1)) @@ -4911,8 +4711,7 @@ TEST="$NAME: readline with password and sigint" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats readline pty); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else SAVETERM="$TERM"; TERM= # 'cause console might print controls even in raw SAVEMICS=$MICROS @@ -4925,9 +4724,9 @@ te="$td/test$N.stderr" tr="$td/test$N.ref" tdiff="$td/test$N.diff" da="test$N $(date) $RANDOM"; da="$da$($ECHO '\r')" -# the feature that we really want to test is in the readline.sh script +# The feature that we really want to test is in the readline.sh script READLINE_LOG=; if grep -e -lf ./readline.sh >/dev/null; then READLINE_LOG="-lf $td/test$N.rl-log"; fi -CMD="$TRACE $SOCAT -lpwrapper $opts -t1 open:$tpi,nonblock!!open:$tpo exec:\"./readline.sh -nh $READLINE_LOG ./readline-test.sh\",pty,ctty,setsid,raw,echo=0,isig" +CMD="$TRACE $SOCAT -lpwrapper $opts -t1 OPEN:$tpi,nonblock!!OPEN:$tpo EXEC:\"./readline.sh -nh $READLINE_LOG ./readline-test.sh\",pty,ctty,setsid,raw,echo=0,isig" #echo "$CMD" >"$ts" #chmod a+x "$ts" printf "test $F_n $TEST... " $N @@ -4985,14 +4784,12 @@ if ! tr "$($ECHO '\r \c')" "% " <$tpo |sed 's/%$//g' |sed 's/.*%//g' |diff "$tr" cat "$te" 2>&1 echo diff: 2>&1 cat "$tdiff" 2>&1 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi wait MICROS=$SAVEMICS @@ -5047,8 +4844,7 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}4" >&2 echo diff: >&2 cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi @@ -5059,8 +4855,7 @@ else if [ "$DEBUG" ]; then cat "${te}3" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD4"; fi if [ "$DEBUG" ]; then cat "${te}4" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -5074,8 +4869,7 @@ TEST="$NAME: gender changer via SSL through HTTP proxy, oneshot" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats openssl proxy); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat" |tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -5135,13 +4929,11 @@ if ! (echo "$da"; sleep 2) |diff - "$tf" >"$tdiff"; then echo "$CMD4 &" cat "${te}4" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2" "${te}3" "${te}4" "${te}5" "${te}6"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid1 $pid2 $pid3 $pid4 $pid5 2>/dev/null wait @@ -5166,8 +4958,7 @@ TEST="$NAME: gender changer via SSL through HTTP proxy, daemons" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats openssl proxy); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -5251,19 +5042,16 @@ if test -s "${tdiff}1" -o -s "${tdiff}2" -o -s "${tdiff}3"; then echo "$CMD6 &" cat "${te}6_3" cat "${tdiff}3" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK ${YELLOW}(partial failure)${NORMAL}\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2" "${te}3" "${te}4" "${te}5" ${te}6*; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2" "${te}3" "${te}4" "${te}5" ${te}6*; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid1 $pid2 $pid3 $pid4 $pid5 2>/dev/null wait @@ -5307,8 +5095,7 @@ testserversec () { $PRINTF "$NO_RESULT (ph.1 server not working):\n" echo "$TRACE $SOCAT $opts \"$arg1,$secopt0\" echo &" cat "${te}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant wait; return fi # now use client @@ -5322,8 +5109,7 @@ testserversec () { cat "${te}1" echo "$TRACE $SOCAT $opts - \"$arg2\"" cat "${te}2" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant wait; return elif echo "$da" |diff - "$tf" >"$tdiff1" 2>&1; then : # function without security is ok, go on @@ -5334,16 +5120,14 @@ testserversec () { echo "$TRACE $SOCAT $opts - $arg2" cat "${te}2" cat "$tdiff1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant wait; return fi # then: with security if [ "$port" ] && ! wait${proto}${ipvers}port $port 0; then $PRINTF "$NO_RESULT (ph.1 port remains in use)\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant wait; return fi wait @@ -5365,8 +5149,7 @@ testserversec () { wait echo "$CMD3" cat "${te}3" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant return fi # now use client @@ -5392,8 +5175,7 @@ testserversec () { echo "$TRACE $SOCAT $opts - $arg2" cat "${te}4" cat "$tdiff2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ "X$expect" != 'X*' -a X$result != X$expect ]; then case X$result in X-1) $PRINTF "$NO_RESULT (ph.2 client error): $TRACE $SOCAT:\n" @@ -5401,8 +5183,7 @@ testserversec () { cat "${te}3" echo "$TRACE $SOCAT $opts - $arg2" cat "${te}4" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant ;; X0) $PRINTF "$NO_RESULT (ph.2 diff failed): diff:\n" echo "$TRACE $SOCAT $opts $arg echo" @@ -5410,8 +5191,7 @@ testserversec () { echo "$TRACE $SOCAT $opts - $arg2" cat "${te}4" cat "$tdiff2" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant ;; X1) $PRINTF "$FAILED: SECURITY BROKEN\n" echo "$TRACE $SOCAT $opts $arg echo" @@ -5419,8 +5199,7 @@ testserversec () { echo "$TRACE $SOCAT $opts - $arg2" cat "${te}4" cat "$tdiff2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed ;; X2) $PRINTF "$FAILED: diff:\n" echo "$TRACE $SOCAT $opts $arg echo" @@ -5428,8 +5207,7 @@ testserversec () { echo "$TRACE $SOCAT $opts - $arg2" cat "${te}4" cat "$tdiff2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed ;; esac else @@ -5438,8 +5216,7 @@ testserversec () { [ "$debug" ] && cat ${te}3 [ "$VERBOSE" ] && echo " $TRACE $SOCAT $opts - $arg2" [ "$debug" ] && cat ${te}4 - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi wait #set +vx @@ -5454,8 +5231,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$SECONDADDR" ]; then # we need access to a second addresses $PRINTF "test $F_n $TEST... ${YELLOW}need a second IPv4 address${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "TCP4-L:$PORT,reuseaddr,fork,retry=1" "" "range=$SECONDADDR/32" "TCP4:127.0.0.1:$PORT" 4 tcp $PORT 0 @@ -5471,8 +5247,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$SECONDADDR" ]; then # we need access to a second addresses $PRINTF "test $F_n $TEST... ${YELLOW}need a second IPv4 address${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "TCP4-L:$PORT,reuseaddr,fork,retry=1" "" "range=$SECONDADDR:255.255.255.255" "TCP4:127.0.0.1:$PORT" 4 tcp $PORT 0 @@ -5522,8 +5297,7 @@ TEST="$NAME: security of TCP4-L with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip4 libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -5542,8 +5316,7 @@ TEST="$NAME: security of TCP4-L with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip4 libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -5563,8 +5336,7 @@ TEST="$NAME: security of TCP6-L with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "TCP6-L:$PORT,reuseaddr,fork,retry=1" "" "range=[::2]/128" "TCP6:[::1]:$PORT" 6 tcp $PORT 0 @@ -5579,8 +5351,7 @@ TEST="$NAME: security of TCP6-L with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "TCP6-L:$PORT,reuseaddr,fork,retry=1" "" "sp=$PORT" "TCP6:[::1]:$PORT" 6 tcp $PORT 0 @@ -5595,8 +5366,7 @@ TEST="$NAME: security of TCP6-L with LOWPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "TCP6-L:$PORT,reuseaddr,fork,retry=1" "" "lowport" "TCP6:[::1]:$PORT" 6 tcp $PORT 0 @@ -5611,8 +5381,7 @@ TEST="$NAME: security of TCP6-L with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6 libwrap && runstcp6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -5666,8 +5435,7 @@ TEST="$NAME: security of UDP4-L with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4 libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -5687,8 +5455,7 @@ TEST="$NAME: security of UDP6-L with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT #testserversec "$N" "$TEST" "$opts" "UDP6-L:$PORT,reuseaddr,fork" "" "range=[::2]/128" "UDP6:[::1]:$PORT" 6 udp $PORT 0 @@ -5704,8 +5471,7 @@ TEST="$NAME: security of UDP6-L with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "UDP6-L:$PORT,reuseaddr" "" "sp=$PORT" "UDP6:[::1]:$PORT" 6 udp $PORT 0 @@ -5720,8 +5486,7 @@ TEST="$NAME: security of UDP6-L with LOWPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "UDP6-L:$PORT,reuseaddr" "" "lowport" "UDP6:[::1]:$PORT" 6 udp $PORT 0 @@ -5736,8 +5501,7 @@ TEST="$NAME: security of UDP6-L with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6 libwrap && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -5756,8 +5520,7 @@ TEST="$NAME: security of SSL-L over TCP/IPv4 with RANGE option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv newport tcp4 # provide free port number in $PORT @@ -5773,8 +5536,7 @@ TEST="$NAME: security of SSL-L with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv newport tcp4 # provide free port number in $PORT @@ -5790,8 +5552,7 @@ TEST="$NAME: security of SSL-L with LOWPORT option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv newport tcp4 # provide free port number in $PORT @@ -5807,8 +5568,7 @@ TEST="$NAME: security of SSL-L with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 tcp libwrap openssl); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv ha="$td/hosts.allow" @@ -5828,8 +5588,7 @@ TEST="$NAME: security of SSL-L with client certificate" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -5846,8 +5605,7 @@ TEST="$NAME: security of SSL with server certificate" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -5865,12 +5623,10 @@ TEST="$NAME: security of SSL-L over TCP/IPv6 with RANGE option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert6 testsrv6 newport tcp6 # provide free port number in $PORT @@ -5886,12 +5642,10 @@ TEST="$NAME: security of SSL-L over TCP/IPv6 with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert6 testsrv6 newport tcp6 # provide free port number in $PORT @@ -5907,12 +5661,10 @@ TEST="$NAME: security of SSL-L over TCP/IPv6 with LOWPORT option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert6 testsrv6 newport tcp6 # provide free port number in $PORT @@ -5928,8 +5680,7 @@ TEST="$NAME: security of SSL-L over TCP/IPv6 with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 tcp libwrap openssl && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert6 testsrv6 ha="$td/hosts.allow" @@ -5953,12 +5704,10 @@ TEST="$NAME: security of client openssl-commonname option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -5979,12 +5728,10 @@ TEST="$NAME: security of server openssl-commonname option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -6002,16 +5749,13 @@ TEST="$NAME: OpenSSL restrictions by FIPS" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testoptions fips >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL/FIPS not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestcert testcli @@ -6027,7 +5771,7 @@ NAME=UNIEXECEOF case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: give exec'd write-only process a chance to flush (-u)" -testod "$N" "$TEST" "" EXEC:"$OD_C" "$opts -u" +testod "$N" "$NAME" "$TEST" "" EXEC:"$OD_C" "$opts -u" esac N=$((N+1)) @@ -6036,7 +5780,7 @@ NAME=REVEXECEOF case "$TESTS" in *%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: give exec'd write-only process a chance to flush (-U)" -testod "$N" "$TEST" EXEC:"$OD_C" "-" "$opts -U" +testod "$N" "$NAME" "$TEST" EXEC:"$OD_C" "-" "$opts -U" esac N=$((N+1)) @@ -6051,13 +5795,11 @@ printf "test $F_n $TEST... " $N type=$($FILAN -f . 2>$te |tail -n 1 |awk '{print($2);}') if [ "$type" = "dir" ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi ;; # NUMCOND esac @@ -6086,16 +5828,14 @@ if [ "$type" = "socket" ]; then echo "$SOCAT $opts UNIX-LISTEN:\"$ts\" /dev/null </dev/null 2>\"$te1\"" echo "$FILAN -f "$ts" 2>$te2 |tail -n 1 |awk '{print(\$2);}'" fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$SOCAT $opts UNIX-LISTEN:\"$ts\" /dev/null </dev/null 2>\"$te1\"" >&2 cat "$te1" echo "$FILAN -f "$ts" 2>$te2 |tail -n 1 |awk '{print(\$2);}'" >&2 cat "$te2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi kill $spid 2>/dev/null wait @@ -6144,8 +5884,7 @@ if echo "$da" |diff - "$tf"> "$tdiff"; then echo " $TRACE $SOCAT $opts -lpsocat1 PTY,$PTYTYPE,pty-wait-slave,link=\"$tp\" UNIX-LISTEN:\"$ts\"" >&2 echo " $TRACE $SOCAT -lpsocat3 $opts - file:\"$tp\",$PTYOPTS2" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "${YELLOW}FAILED${NORMAL}\n" cat "$te1" @@ -6153,8 +5892,7 @@ else cat "$te3" cat "$te4" cat "$tdiff" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant fi set +vx } @@ -6167,12 +5905,10 @@ TEST="$NAME: test if master pty ($PTYTYPE) waits for slave connection" if ! eval $NUMCOND; then :; else if ! feat=$(testfeats pty); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions "$PTYTYPE" pty-wait-slave); then $PRINTF "test $F_n $TEST... ${YELLOW}option $(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else testptywaitslave "$N" "$TEST" "$PTYTYPE" "$opts" fi @@ -6188,12 +5924,10 @@ TEST="$NAME: test if master pty ($PTYTYPE) waits for slave connection" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats pty); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions "$PTYTYPE" pty-wait-slave); then $PRINTF "test $F_n $TEST... ${YELLOW}option $(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else testptywaitslave "$N" "$TEST" "$PTYTYPE" "$opts" fi ;; # NUMCOND, feats @@ -6209,12 +5943,10 @@ TEST="$NAME: test the connect-timeout option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions connect-timeout); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # We need a hanging connection attempt, guess an address for this case "$UNAME" in @@ -6236,8 +5968,7 @@ if ! kill $pid1 2>"$tk1"; then $PRINTF "${YELLOW}does not hang${NORMAL}\n" echo "$CMD" >&2 cat "$te1" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # Second, set connect-timeout and see if socat exits before kill CMD="$TRACE $SOCAT $opts - TCP:$HANGIP:1,connect-timeout=$(reltime 1)" @@ -6248,15 +5979,13 @@ if kill $pid2 2>"$tk2"; then $PRINTF "$FAILED (\n" echo "$CMD" >&2 cat "$te2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi wait @@ -6297,8 +6026,7 @@ if [ $rc2 -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD1 &" @@ -6307,13 +6035,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi ;; esac fi # NUMCOND @@ -6327,8 +6053,7 @@ TEST="$NAME: openssl listen with DSA certificate" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else SRVCERT=testsrvdsa gentestdsacert $SRVCERT @@ -6351,13 +6076,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat ${te}1 ${te}2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -6392,8 +6115,7 @@ TEST="$NAME: exit status when dying on SIG$signam" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats pty); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat" |tr a-z A-Z) not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else SIG="$(signum $signam)" te="$td/test$N.stderr" @@ -6419,14 +6141,12 @@ sleep 1; kill -INT $(cat $tp) wait if [ "$stat" -eq $((128+$SIG)) ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi wait fi ;; # NUMCOND, feats @@ -6443,8 +6163,7 @@ TEST="$NAME: restrict reading from file with bytes option" if ! eval $NUMCOND; then :; elif false; then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tr="$td/test$N.ref" ti="$td/test$N.in" @@ -6468,13 +6187,11 @@ if ! diff "$tr" "$to" >"$tdiff" 2>&1; then echo "$CMD" cat "$te" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -6488,20 +6205,16 @@ TEST="$NAME: UDP socket rebinds after first connection" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO IP4 UDP PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO UDP4-CONNECT UDP4-LISTEN PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions bind so-reuseaddr fork) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -6526,8 +6239,7 @@ if [ $? -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then kill "$pids" 2>/dev/null $PRINTF "$NO_RESULT (first conn failed); diff:\n" @@ -6536,8 +6248,7 @@ elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then echo "$CMD1" cat "${te}1" >&2 cat "$tdiff" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else relsleep 2 # UDP-LISTEN sleeps 1s echo "$da2" |eval "$CMD1" >"${tf}2" 2>"${te}2" @@ -6548,8 +6259,7 @@ if [ $rc -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da2" |diff - "${tf}2" >"$tdiff"; then $PRINTF "$FAILED: diff\n" echo "$CMD0 &" @@ -6558,16 +6268,14 @@ elif ! echo "$da2" |diff - "${tf}2" >"$tdiff"; then cat "${te}1" >&2 echo "diff:" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !( $? -ne 0) fi # !(rc -ne 0) wait @@ -6594,11 +6302,10 @@ TEST="$NAME: $PROTOV listen handles 2 concurrent connections" if ! eval $NUMCOND; then :; #elif ! feat=$(testfeats $PROTOV); then # $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$PROTOV" |tr a-z A-Z) not available${NORMAL}\n" $N -# numCANT=$((numCANT+1)) +# cant elif ! runs$protov >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$PROTOV not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.sock" tref="$td/test$N.ref" @@ -6650,8 +6357,7 @@ if ! diff -u "$tref" "$tf" >"$tdiff"; then echo "$CMD1" cat "${te}2" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -6660,8 +6366,7 @@ else if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) wait fi ;; # NUMCOND, feats @@ -6703,18 +6408,15 @@ if [ $? -ne 0 ]; then echo "$SRV &" echo "$CLI" cat "${te}s" "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then kill "$pids" 2>/dev/null $PRINTF "$FAILED; diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) wait fi ;; # NUMCOND @@ -6753,8 +6455,7 @@ if [ $rc -ne 0 ]; then cat "${te}s" echo "$CLI" cat "${te}1" "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then kill "$pids" 2>/dev/null $PRINTF "$FAILED:\n" @@ -6763,12 +6464,10 @@ elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then echo "$CLI" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) fi ;; # NUMCOND esac @@ -6783,7 +6482,7 @@ TEST="$NAME: simple echo via exec of cat with pipes,stderr" # this test is known to fail when logging is enabled with OPTS/opts env var. SAVE_opts="$opts" opts="$(echo "$opts" |sed 's/-dd*//g')" -testecho "$N" "$TEST" "" "EXEC:$CAT,pipes,stderr" "$opts" +testecho "$N" "$NAME" "$TEST" "" "EXEC:$CAT,pipes,stderr" "$opts" opts="$SAVE_opts" esac N=$((N+1)) @@ -6800,7 +6499,7 @@ case "$opts" in *-d*) opts="$opts -d" ;; *) opts="-d -d" ;; esac -testecho "$N" "$TEST" "" "exec:$CAT,pipes,stderr" "$opts" +testecho "$N" "$NAME" "$TEST" "" "exec:$CAT,pipes,stderr" "$opts" opts="$SAVE_opts" esac N=$((N+1)) @@ -6811,7 +6510,7 @@ NAME=SIMPLEPARSE case "$TESTS" in *%$N%*|*%functions%*|*%PARSE%*|*%$NAME%*) TEST="$NAME: invoke socat from socat" -testecho "$N" "$TEST" "" exec:"$SOCAT - exec\:$CAT,pipes" "$opts" "$val_t" +testecho "$N" "$NAME" "$TEST" "" exec:"$SOCAT - exec\:$CAT,pipes" "$opts" "$val_t" esac N=$((N+1)) @@ -6836,20 +6535,17 @@ if [ "$rc" -ne 0 ]; then $PRINTF "$FAILED:\n" echo "$TRACE $SOCAT" -u "exec:echo $da" - cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ -s "$tdiff" ]; then $PRINTF "$FAILED:\n" echo diff: cat "$tdiff" if [ -n "$debug" ]; then cat $te; fi - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -6859,7 +6555,7 @@ NAME=NESTEDSOCATEXEC case "$TESTS" in *%parse%*|*%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: does lexical analysis work sensibly (exec)" -testecho "$N" "$TEST" "" "exec:'$SOCAT - exec:$CAT,pipes'" "$opts" 1 +testecho "$N" "$NAME" "$TEST" "" "exec:'$SOCAT - exec:$CAT,pipes'" "$opts" 1 esac N=$((N+1)) @@ -6867,7 +6563,7 @@ NAME=NESTEDSOCATSYSTEM case "$TESTS" in *%parse%*|*%$N%*|*%functions%*|*%$NAME%*) TEST="$NAME: does lexical analysis work sensibly (system)" -testecho "$N" "$TEST" "" "system:\"$SOCAT - exec:$CAT,pipes\"" "$opts" 1 +testecho "$N" "$NAME" "$TEST" "" "system:\"$SOCAT - exec:$CAT,pipes\"" "$opts" 1 esac N=$((N+1)) @@ -6879,12 +6575,10 @@ TEST="$NAME: TCP4 mapped into TCP6 address space" if ! eval $NUMCOND; then :; elif true; then $PRINTF "test $F_n $TEST... ${YELLOW}Feature removed${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats tcp ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -6905,18 +6599,15 @@ if [ $? -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null; wait fi ;; # NUMCOND, feats @@ -6956,8 +6647,7 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -6965,13 +6655,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -6986,8 +6674,7 @@ TEST="$NAME: UDP/IPv6 datagram" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -7010,18 +6697,15 @@ if [ $? -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat ${te}1 ${te}2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -7035,8 +6719,7 @@ TEST="$NAME: raw IPv4 datagram" if ! eval $NUMCOND; then :; elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -7062,18 +6745,15 @@ if [ $rc2 -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # root, NUMCOND esac @@ -7088,12 +6768,10 @@ TEST="$NAME: raw IPv6 datagram by self addressing" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 rawip && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -7115,18 +6793,15 @@ if [ $? -ne 0 ]; then # cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # root, NUMCOND esac @@ -7160,8 +6835,7 @@ if [ $rc2 -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD1 &" @@ -7170,16 +6844,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -7216,8 +6888,7 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -7225,13 +6896,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -7246,8 +6915,7 @@ TEST="$NAME: UDP/IPv6 receive" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -7273,18 +6941,15 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -7298,8 +6963,7 @@ TEST="$NAME: raw IPv4 receive" if ! eval $NUMCOND; then :; elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -7325,18 +6989,15 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, root esac @@ -7350,12 +7011,10 @@ TEST="$NAME: raw IPv6 receive" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 rawip && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -7380,18 +7039,15 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, root esac @@ -7425,18 +7081,15 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -7451,8 +7104,7 @@ TEST="$NAME: security of UDP4-RECVFROM with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "UDP4-RECVFROM:$PORT,reuseaddr" "" "sp=$PORT" "UDP4-SENDTO:127.0.0.1:$PORT" 4 udp $PORT 0 @@ -7467,8 +7119,7 @@ TEST="$NAME: security of UDP4-RECVFROM with LOWPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "UDP4-RECVFROM:$PORT,reuseaddr" "" "lowport" "UDP4-SENDTO:127.0.0.1:$PORT" 4 udp $PORT 0 @@ -7495,8 +7146,7 @@ TEST="$NAME: security of UDP4-RECVFROM with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 udp libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -7517,8 +7167,7 @@ TEST="$NAME: security of UDP4-RECV with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4; PORT1=$PORT newport udp4; PORT2=$PORT @@ -7537,8 +7186,7 @@ TEST="$NAME: security of UDP4-RECV with LOWPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4; PORT1=$PORT newport udp4; PORT2=$PORT @@ -7556,8 +7204,7 @@ TEST="$NAME: security of UDP4-RECV with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4; PORT1=$PORT newport udp4; PORT2=$PORT @@ -7575,8 +7222,7 @@ TEST="$NAME: security of UDP4-RECV with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip4 libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4; PORT1=$PORT newport udp4; PORT2=$PORT @@ -7599,8 +7245,7 @@ TEST="$NAME: security of UDP6-RECVFROM with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "UDP6-RECVFROM:$PORT,reuseaddr" "" "sp=$PORT" "UDP6-SENDTO:[::1]:$PORT" 6 udp $PORT 0 @@ -7615,8 +7260,7 @@ TEST="$NAME: security of UDP6-RECVFROM with LOWPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT testserversec "$N" "$TEST" "$opts" "UDP6-RECVFROM:$PORT,reuseaddr" "" "lowport" "UDP6-SENDTO:[::1]:$PORT" 6 udp $PORT 0 @@ -7631,8 +7275,7 @@ TEST="$NAME: security of UDP6-RECVFROM with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT #testserversec "$N" "$TEST" "$opts" "UDP6-RECVFROM:$PORT,reuseaddr,fork" "" "range=[::2]/128" "UDP6-SENDTO:[::1]:$PORT" 6 udp $PORT 0 @@ -7648,8 +7291,7 @@ TEST="$NAME: security of UDP6-RECVFROM with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6 libwrap && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -7669,8 +7311,7 @@ TEST="$NAME: security of UDP6-RECV with SOURCEPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6; PORT1=$PORT newport udp6; PORT2=$PORT @@ -7689,8 +7330,7 @@ TEST="$NAME: security of UDP6-RECV with LOWPORT option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6; PORT1=$PORT newport udp6; PORT2=$PORT @@ -7708,8 +7348,7 @@ TEST="$NAME: security of UDP6-RECV with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6; PORT1=$PORT newport udp6; PORT2=$PORT @@ -7727,8 +7366,7 @@ TEST="$NAME: security of UDP6-RECV with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6 libwrap && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -7751,12 +7389,10 @@ TEST="$NAME: security of IP4-RECVFROM with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp4 # provide free port number in $PORT #testserversec "$N" "$TEST" "$opts" "IP4-RECVFROM:$IPPROTO,reuseaddr,fork" "" "range=$SECONDADDR/32" "IP4-SENDTO:127.0.0.1:$IPPROTO" 4 ip $IPPROTO 0 @@ -7773,12 +7409,10 @@ TEST="$NAME: security of IP4-RECVFROM with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -7801,12 +7435,10 @@ TEST="$NAME: security of IP4-RECV with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else IPPROTO1=$IPPROTO; #IPPROTO=$((IPPROTO+1)) IPPROTO2=$((IPPROTO+1)) @@ -7827,12 +7459,10 @@ TEST="$NAME: security of IP4-RECV with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else IPPROTO1=$IPPROTO; #IPPROTO=$((IPPROTO+1)) IPPROTO2=$((IPPROTO+1)) @@ -7856,12 +7486,10 @@ TEST="$NAME: security of IP6-RECVFROM with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 rawip && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport udp6 # provide free port number in $PORT #testserversec "$N" "$TEST" "$opts" "IP6-RECVFROM:$IPPROTO,reuseaddr,fork" "" "range=[::2]/128" "IP6-SENDTO:[::1]:$IPPROTO" 6 ip $IPPROTO 0 @@ -7878,12 +7506,10 @@ TEST="$NAME: security of IP6-RECVFROM with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 rawip libwrap && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ha="$td/hosts.allow" hd="$td/hosts.deny" @@ -7905,12 +7531,10 @@ TEST="$NAME: security of IP6-RECV with RANGE option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 rawip) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}raw IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else IPPROTO1=$IPPROTO; #IPPROTO=$((IPPROTO+1)) IPPROTO2=$((IPPROTO+1)) @@ -7929,12 +7553,10 @@ TEST="$NAME: security of IP6-RECV with TCPWRAP option" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip6 rawip libwrap && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else IPPROTO1=$IPPROTO; #IPPROTO=$((IPPROTO+1)) IPPROTO2=$((IPPROTO+1)) @@ -7962,8 +7584,7 @@ TEST="$NAME: option O_NOATIME on file" if ! eval $NUMCOND; then :; elif ! testoptions o-noatime >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}o-noatime not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.file" te="$td/test$N.stderr" @@ -7983,8 +7604,7 @@ if [ $? -ne 0 ]; then # command failed $PRINTF "${FAILED}:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else # check which file has a later atime stamp if [ $(ls -ltu "${tf}1" "${tf}2" |head -1 |sed 's/.* //') != "${tf}2" ]; @@ -7992,13 +7612,11 @@ then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # wrong time stamps fi # command ok fi ;; # NUMCOND, feats @@ -8016,8 +7634,7 @@ TEST="$NAME: option O_NOATIME on file descriptor" if ! eval $NUMCOND; then :; elif ! testoptions o-noatime >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}o-noatime not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.file" te="$td/test$N.stderr" @@ -8039,8 +7656,7 @@ if [ $rc -ne 0 ]; then # command failed $PRINTF "${FAILED} (rc=$rc):\n" echo "$CMD" cat "$te" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else # check which file has a later atime stamp if [ $(ls -ltu "${tf}1" "${tf}2" |head -1 |sed 's/.* //') != "${tf}2" ]; @@ -8048,14 +7664,12 @@ then $PRINTF "$FAILED (bad order):\n" echo "$CMD" >&2 cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # wrong time stamps fi # command ok fi ;; # NUMCOND, feats @@ -8073,8 +7687,7 @@ TEST="$NAME: extended file system options using fs noatime option" if ! eval $NUMCOND; then :; elif ! testoptions fs-noatime >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}fs-noatime not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.socket" tf="$td/test$N.file" @@ -8089,8 +7702,7 @@ CMD="$TRACE $SOCAT $opts -u /dev/null create:\"${tf}1\",fs-noatime" $CMD0 2>"${te}0" if [ $? -ne 0 ]; then $PRINTF "${YELLOW} cannot test${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # generate a file with noatime, len >= 1 $CMD 2>"$te" @@ -8098,8 +7710,7 @@ if [ $? -ne 0 ]; then # command failed $PRINTF "${YELLOW}impotent file system?${NORMAL}\n" echo "$CMD" cat "$te" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else sleep 1 # generate a reference file @@ -8114,13 +7725,11 @@ then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # not impotent fi # can test @@ -8136,8 +7745,7 @@ TEST="$NAME: option cool-write" if ! eval $NUMCOND; then :; elif ! testoptions cool-write >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}option cool-write not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else #set -vx ti="$td/test$N.pipe" @@ -8159,13 +7767,11 @@ if [ $rc -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD &" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8187,8 +7793,7 @@ TEST="$NAME: option cool-write on bidirectional stdio" if ! eval $NUMCOND; then :; elif ! testoptions cool-write >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}option cool-write not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else #set -vx ti="$td/test$N.pipe" @@ -8212,13 +7817,11 @@ if [ $rc -ne 0 ]; then cat "${te}1" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8265,8 +7868,7 @@ if [ $rc2a -ne 0 -o $rc2b -ne 0 ]; then cat "${te}2a" >&2 echo "$CMD2" cat "${te}2b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! $ECHO "$da2a\n$da2b" |diff - "${tf}0" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -8278,8 +7880,7 @@ elif ! $ECHO "$da2a\n$da2b" |diff - "${tf}0" >"$tdiff"; then echo "$CMD2" cat "${te}2b" >&2 cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -8290,8 +7891,7 @@ else if [ "$DEBUG" ]; then cat "${te}2a" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -8326,19 +7926,16 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1a" "${te}1b" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! $ECHO "$da1a\n$da1b" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" cat "${te}1a" "${te}1b" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1a" "${te}1b" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -8372,14 +7969,12 @@ PTY=$(grep "N PTY is " $te |sed 's/.*N PTY is //') rc=$(cat "$td/test$N.rc0") if [ "$rc" = 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -8423,8 +8018,7 @@ if [ $rc1 != 0 -o $rc2 != 0 ]; then cat "${te}1" >&2 echo "$CMD1" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "${tf}" >"$tdiff"; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -8433,8 +8027,7 @@ elif echo "$da" |diff - "${tf}" >"$tdiff"; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -8445,8 +8038,7 @@ else cat "${te}2" >&2 echo "// diff:" >&2 cat "${tdiff}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -8463,8 +8055,7 @@ TEST="$NAME: UDP6-LISTEN with bind" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats udp ip6) || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}UDP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8486,18 +8077,15 @@ if [ $rc2 -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8513,8 +8101,7 @@ TEST="$NAME: use of multiple tcpwrapper enabling options" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip4 libwrap) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8538,18 +8125,15 @@ if [ $rc2 -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8565,8 +8149,7 @@ TEST="$NAME: specification of TCP6 address in hosts.allow" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats tcp ip6 libwrap && runsip6); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8592,18 +8175,15 @@ if [ $rc2 -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8617,8 +8197,7 @@ TEST="$NAME: UDP/IPv4 broadcast" if ! eval $NUMCOND; then :; elif [ -z "$BCADDR" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}dont know a broadcast address${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8645,13 +8224,11 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$tut" ]; then @@ -8659,8 +8236,7 @@ else echo "$CMD2" fi if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8677,12 +8253,10 @@ TEST="$NAME: raw IPv4 broadcast" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}raw IP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ -z "$BCADDR" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}dont know a broadcast address${NORMAL}\n" $N else @@ -8715,8 +8289,7 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" | sed 's/XXXX/YYYY/'|diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD1 &" @@ -8725,16 +8298,14 @@ elif ! echo "$da" | sed 's/XXXX/YYYY/'|diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8764,16 +8335,13 @@ TEST="$NAME: UDP/IPv4 multicast, send only" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 udp) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs UDP4-RECV UDP4-SENDTO); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions ip-add-membership bind) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8798,8 +8366,7 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -8807,16 +8374,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}2" >&2 cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8829,12 +8394,10 @@ TEST="$NAME: IPv4 multicast" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8861,18 +8424,15 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8889,24 +8449,19 @@ TEST="$NAME: UDP/IPv6 multicast" if ! eval $NUMCOND; then :; elif ! f=$(testfeats ip6 udp); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $f not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs - STDIO UDP6-RECV UDP6-SENDTO); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions ipv6-join-group) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv6 does not work on $HOSTNAME${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! echo |$SOCAT -u -t 0.1 - UDP6-SENDTO:[ff02::1]:12002 >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv6 multicasting does not work${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -8932,14 +8487,11 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then # if ! [ "$UNAME" = Linux ] || ! [[ $(uname -r) =~ ^2\.* ]] || ! [[ ^3\.* ]] || ! [[ ^4\.[0-4]\.* ]]; then # $PRINTF "${YELLOW}works only on Linux up to about 4.4${NORMAL}\n" $N -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" +# cant # else $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -8947,8 +8499,7 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed # fi else $PRINTF "$OK\n" @@ -8956,8 +8507,7 @@ else if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -8994,8 +8544,7 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -9004,16 +8553,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo diff: >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -9026,12 +8573,10 @@ TEST="$NAME: IPv4 multicast, with reply" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 rawip) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9057,13 +8602,11 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$tut" ]; then @@ -9071,8 +8614,7 @@ else echo "$CMD2" fi if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -9090,12 +8632,10 @@ TEST="$NAME: reading data sent through tun interface" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 tun) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9120,21 +8660,18 @@ if [ $? -ne 0 ]; then echo "$CMD &" echo "$CMD1" cat "${te}" "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD &" echo "$CMD1" cat "$tdiff" cat "${te}" "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}" "${te}1"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -9152,12 +8689,10 @@ TEST="$NAME: pass data through tun interface using INTERFACE" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats ip4 tun interface) || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9184,8 +8719,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -9194,16 +8728,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" >&2 echo "// diff:" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -9217,8 +8749,7 @@ TEST="$NAME: abstract UNIX stream socket, listen and connect" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats abstract-unixsocket); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.socket" tf="$td/test$N.stdout" @@ -9243,8 +8774,7 @@ if [ $? -ne 0 ]; then cat "${te}s" echo "$CMD" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then kill "$pids" 2>/dev/null $PRINTF "$FAILED:\n" @@ -9253,13 +8783,11 @@ elif ! echo "$da1" |diff - "${tf}1" >"$tdiff"; then echo "$CMD" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # !(rc -ne 0) wait fi ;; # NUMCOND, feats @@ -9274,8 +8802,7 @@ TEST="$NAME: abstract UNIX datagram" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats abstract-unixsocket); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9300,8 +8827,7 @@ if [ $rc2 -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -9309,16 +8835,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}2" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -9332,8 +8856,7 @@ TEST="$NAME: abstract UNIX datagram receive" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats abstract-unixsocket); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.socket" tf="$td/test$N.stdout" @@ -9359,8 +8882,7 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -9368,16 +8890,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}2" >&2 cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -9396,8 +8916,7 @@ TEST="$NAME: abstract bind" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9413,21 +8932,18 @@ if [ $rc1 -ne 0 ]; then echo "$CMD1" echo "rc=$rc1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff -q - $tf; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD1" >&2 cat "${te}1" >&2 echo "$da" |diff - "$tf" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -9454,8 +8970,7 @@ TEST="$NAME: socat handles data buffered by openssl" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats openssl) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.out" te="$td/test$N.err" @@ -9480,13 +8995,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD2" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi wait fi # NUMCOND, featsesac @@ -9510,8 +9023,7 @@ TEST="$NAME: trigger EOF after that many bytes, even when socket idle" if ! eval $NUMCOND; then :; elif false; then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tr="$td/test$N.ref" ti="$td/test$N.in" @@ -9525,13 +9037,11 @@ printf "test $F_n $TEST... " $N if test -s "$to"; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -9575,18 +9085,15 @@ if [ $? -ne 0 ]; then echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ -f "$tda" ]; then $PRINTF "$FAILED\n" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -9626,18 +9133,15 @@ if [ $? -ne 0 ]; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid1 2>/dev/null wait @@ -9671,15 +9175,13 @@ TEST="$NAME: more than FOPEN_MAX FDs in use" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else REDIR= #set -vx if [ -z "$FOPEN_MAX" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}could not determine FOPEN_MAX${NORMAL}\n" "$N" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else if [ $FOPEN_MAX -lt 270 ]; then OPEN_FILES=$FOPEN_MAX # more than the highest FOPEN_MAX @@ -9692,9 +9194,9 @@ i=3; while [ "$i" -lt "$OPEN_FILES" ]; do i=$((i+1)) done #echo "$REDIR" -#testecho "$N" "$TEST" "" "pipe" "$opts -T 3" "" 1 +#testecho "$N" "$NAME" "$TEST" "" "pipe" "$opts -T 3" "" 1 #set -vx -eval testecho "\"$N\"" "\"$TEST\"" "\"\"" "pipe" "\"$opts -T $((2*SECONDs))\"" 1 $REDIR +eval testecho "\"$N\"" "\"$NAME\"" "\"$TEST\"" "\"\"" "pipe" "\"$opts -T $((2*SECONDs))\"" 1 $REDIR #set +vx fi # could determine FOPEN_MAX fi ;; # NUMCOND @@ -9733,24 +9235,20 @@ l="$(childprocess $pid1)" kill $pid1 2>/dev/null; wait if [ $rc2 -ne 0 ]; then $PRINTF "$NO_RESULT (client failed)\n" # already handled in test UDP4STREAM - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$NO_RESULT (diff failed)\n" # already handled in test UDP4STREAM - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif $(isdefunct "$l"); then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD1 &" echo "$CMD2" cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -9793,16 +9291,14 @@ if [ $rc2 -ne 0 ]; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$NO_RESULT\n" # already handled in test UDP4DGRAM if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif $(isdefunct "$l"); then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD1 &" @@ -9810,16 +9306,14 @@ elif $(isdefunct "$l"); then echo "$CMD2" cat "${te}2" >&2 cat "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -9839,8 +9333,7 @@ TEST="$NAME: raw IPv4 receive with bind" if ! eval $NUMCOND; then :; elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -9866,18 +9359,15 @@ if [ "$rc2" -ne 0 ]; then echo "$CMD2" cat "${te}1" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, root esac @@ -9916,8 +9406,7 @@ rc2b=$? kill $pid1 2>/dev/null; wait if [ $rc2b -ne 0 ]; then $PRINTF "$NO_RESULT\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! echo "$da2b" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD1 &" >&2 @@ -9925,13 +9414,11 @@ elif ! echo "$da2b" |diff - "$tf" >"$tdiff"; then echo "$CMD2" >&2 cat "${te}2b" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2" "${te}3"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -9958,20 +9445,17 @@ echo "$da" |diff - "$tf" >"$tdiff" if [ "$rc" -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ -s "$tdiff" ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo diff: cat "$tdiff" if [ -n "$debug" ]; then cat $te; fi - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10013,24 +9497,20 @@ fi kill $pid1 2>/dev/null; wait if [ $rc1 -ne 0 ]; then $PRINTF "$NO_RESULT\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $nsocks -eq 0 ]; then $PRINTF "$NO_RESULT\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $nsocks -ne 1 ]; then $PRINTF "$FAILED ($nsocks listening sockets)\n" echo "$CMD0 &" echo "$CMD1" cat "${te}0" "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}0" "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10061,19 +9541,16 @@ if [ $rc0 != 0 ]; then echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "$tf" >/dev/null; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" echo "$CMD1" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi ;; # NUMCOND esac @@ -10099,18 +9576,15 @@ if [ $? -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10139,13 +9613,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10170,20 +9642,16 @@ if ! eval $NUMCOND; then :; #elif [[ "$PF" == "#*" ]]; then : elif [ "$ROOT" = root -a $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats ${KEYW%[46]} IP${KEYW##*[A-Z]}); then $PRINTF "test $F_n $TEST... ${YELLOW}$KEYW not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runs${proto} >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$KEYW not available on host${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testoptions $SCM_RECV >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}option $SCM_RECV not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -10239,8 +9707,7 @@ if [ "$rc1" -ne 0 ]; then echo "$CMD1" grep " $LEVELS " "${te}0" grep " $LEVELS " "${te}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! grep "ancillary message: $SCM_TYPE: $SCM_NAME=" ${te}0 >/dev/null; then $PRINTF "$FAILED\n" echo "variable $SCM_TYPE: $SCM_NAME not set" @@ -10248,8 +9715,7 @@ elif ! grep "ancillary message: $SCM_TYPE: $SCM_NAME=" ${te}0 >/dev/null; then echo "$CMD1" grep " $LEVELS " "${te}0" grep " $LEVELS " "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! grep "ancillary message: $SCM_TYPE: $SCM_NAME=$SCM_VALUE\$" ${te}0 >/dev/null; then $PRINTF "$FAILED\n" badval="$(grep "ancillary message: $SCM_TYPE: $SCM_NAME" ${te}0 |sed 's/.*=//g')" @@ -10258,21 +9724,18 @@ elif ! grep "ancillary message: $SCM_TYPE: $SCM_NAME=$SCM_VALUE\$" ${te}0 >/dev/ echo "$CMD1" grep " $LEVELS " "${te}0" grep " $LEVELS " "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then grep " $LEVELS " "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "echo XYZ |$CMD1"; fi if [ "$DEBUG" ]; then grep " $LEVELS " "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi else # option is not supported $PRINTF "${YELLOW}$SCM_RECV not available${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant fi # option is not supported fi # NUMCOND, root, feats ;; @@ -10331,12 +9794,10 @@ TEST="$NAME: $KEYW-LISTEN sets environment variables with socket addresses" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats $FEAT); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat" |tr a-z A-Z) not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runs${protov} >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -10374,8 +9835,7 @@ if [ $rc1 != 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ "$(grep SOCAT_SOCKADDR "${tf}" |sed -e 's/^[^=]*=//' |sed -e "s/[\"']//g")" = "$TEST_SOCKADDR" -a \ "$(grep SOCAT_PEERADDR "${tf}" |sed -e 's/^[^=]*=//' -e "s/[\"']//g")" = "$TEST_PEERADDR" -a \ \( "$PORTMETHOD" = ',' -o "$(grep SOCAT_SOCKPORT "${tf}" |sed -e 's/^[^=]*=//' |sed -e 's/"//g')" = "$TEST_SOCKPORT" \) -a \ @@ -10388,8 +9848,7 @@ elif [ "$(grep SOCAT_SOCKADDR "${tf}" |sed -e 's/^[^=]*=//' |sed -e "s/[\"']//g" echo "$CMD1" cat "${te}1" fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -10398,8 +9857,7 @@ else cat "${te}1" echo -e "SOCAT_SOCKADDR=$TEST_SOCKADDR\nSOCAT_PEERADDR=$TEST_PEERADDR\nSOCAT_SOCKPORT=$TEST_SOCKPORT\nSOCAT_PEERPORT=$TEST_PEERPORT" | diff - "${tf}" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND, feats ;; @@ -10438,12 +9896,10 @@ TEST="$NAME: $KEYW ancillary message sets env SOCAT_$SCM_ENVNAME" if ! eval $NUMCOND; then :; elif [ "$ROOT" = root -a $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ "$PF" = "IP6" ] && ( ! feat=$(testfeats ip6) || ! runsip6 ) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -10495,8 +9951,7 @@ if [ "$rc1" -ne 0 ]; then echo "$CMD1" cat "${te}0" cat "${te}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant #elif ! $GREP_E "^export SOCAT_$SCM_ENVNAME=[\"']?$SCM_VALUE[\"']?\$" ${tf} >/dev/null; then #elif ! eval echo "$TRACE $SOCAT_\$SCM_VALUE" |diff - "${tf}" >/dev/null; then elif ! expr "$(cat "$tf")" : "$SCM_VALUE\$" >/dev/null; then @@ -10506,21 +9961,18 @@ elif ! expr "$(cat "$tf")" : "$SCM_VALUE\$" >/dev/null; then echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "{ echo XYZ; sleep 0.1; } |$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi else # option is not supported $PRINTF "${YELLOW}$SCM_RECV not available${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant fi # option is not supported fi ;; # NUMCOND, feats esac @@ -10588,8 +10040,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10597,13 +10048,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -10619,8 +10068,7 @@ TEST="$NAME: socket connect with TCP/IPv6" if ! eval $NUMCOND; then :; elif ! testfeats tcp ip6 >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # start a TCP6-LISTEN process that echoes data, and send test data using # SOCKET-CONNECT, selecting TCP/IPv6. The sent data should be returned. @@ -10649,8 +10097,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10658,13 +10105,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10699,8 +10144,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10708,13 +10152,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10755,8 +10197,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10764,13 +10205,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10809,8 +10248,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10818,13 +10256,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10864,8 +10300,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10873,13 +10308,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10921,8 +10354,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10930,13 +10362,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -10977,8 +10407,7 @@ if [ "$rc1" -ne 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" @@ -10986,13 +10415,11 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat $te; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -11006,8 +10433,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$SECONDADDR" ]; then # we need access to more loopback addresses $PRINTF "test $F_n $TEST... ${YELLOW}need a second IPv4 address${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4; ts1p=$(printf "%04x" $PORT); testserversec "$N" "$TEST" "$opts" "SOCKET-LISTEN:2:6:x${ts1p}x00000000x0000000000000000,$REUSEADDR,fork,retry=1" "" "range=x0000x7f000000:x0000xffffffff" "SOCKET-CONNECT:2:6:x${ts1p}x${SECONDADDRHEX}x0000000000000000" 4 tcp $PORT 0 @@ -11031,8 +10457,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$TIOCEXCL" ]; then # we use the numeric value of TIOCEXL which is system dependent $PRINTF "test $F_n $TEST... ${YELLOW}no value of TIOCEXCL${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tp="$td/test$N.pty" tf="$td/test$N.stdout" @@ -11057,21 +10482,18 @@ if ! echo "$da" |diff - "$tf" >/dev/null; then echo "$CMD0 &" echo "$CMD1" echo "$da" |diff - "$tf" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc2 -eq 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" echo "$CMD1" echo "$CMD2" cat "${te}0" "${te}1" "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}0" "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND, TIOCEXCL ;; @@ -11096,8 +10518,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$TCP_MAXSEG" ]; then # we use the numeric value of TCP_MAXSEG which might be system dependent $PRINTF "test $F_n $TEST... ${YELLOW}value of TCPMAXSEG not known${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -11124,29 +10545,25 @@ if ! echo "$da" |diff - "${tf}1" >"$tdiff"; then echo "$CMD1" cat ${te}1 cat "$tdiff" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc1 -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" cat ${te}0 echo "$CMD1" cat ${te}1 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ $rc2 -eq 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" cat ${te}0 echo "$CMD2" cat ${te}2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}0" "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -11175,8 +10592,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$SO_REUSEADDR" ]; then # we use the numeric value of SO_REUSEADDR which might be system dependent $PRINTF "test $F_n $TEST... ${YELLOW}value of SO_REUSEADDR not known${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -11207,8 +10623,7 @@ if ! echo "$da" |diff - "${tf}1" >"${tdiff}1"; then echo "$CMD1" cat ${te}1 cat "${tdiff}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc3 -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" @@ -11219,8 +10634,7 @@ elif [ $rc3 -ne 0 ]; then cat ${te}2 echo "$CMD3" cat ${te}3 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "${tf}3" >"${tdiff}3"; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" @@ -11232,13 +10646,11 @@ elif ! echo "$da" |diff - "${tf}3" >"${tdiff}3"; then echo "$CMD3" cat ${te}3 cat "${tdiff}3" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}0" "${te}1" "${te}2" "${te}3"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND, SO_REUSEADDR ;; @@ -11253,15 +10665,12 @@ TEST="$NAME: echo via connection to SCTP V4 socket" if ! eval $NUMCOND; then :; elif ! testfeats sctp ip4 >/dev/null || ! runsip4 >/dev/null || ! runssctp4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SCTP4 not available${NORMAL}\n" $N - listCANT="$listCANT $N" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ "$UNAME" = Linux ] && ! grep ^sctp /proc/modules >/dev/null; then # RHEL5 based systems became unusable when an sctp socket was created but # module sctp not loaded $PRINTF "test $F_n $TEST...${YELLOW}load sctp module!${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -11283,18 +10692,15 @@ if [ $? -ne 0 ]; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid1 2>/dev/null wait @@ -11310,12 +10716,10 @@ TEST="$NAME: echo via connection to SCTP V6 socket" if ! eval $NUMCOND; then :; elif ! testfeats sctp ip6 >/dev/null || ! runsip6 >/dev/null || ! runssctp6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SCTP6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ "$UNAME" = Linux ] && ! grep ^sctp /proc/modules >/dev/null; then $PRINTF "test $F_n $TEST...${YELLOW}load sctp module!${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -11337,18 +10741,15 @@ if [ $? -ne 0 ]; then cat "${te}1" echo "$CMD2" cat "${te}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED: diff:\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null fi # NUMCOND, feats @@ -11381,21 +10782,17 @@ TEST="$NAME: OpenSSL connections survive renogotiation" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! [[ $(echo $OPENSSL_VERSION |awk '{print($2);}') =~ [01].* ]]; then # openssl s_client apparently provides renegotiation only up to version 1.2 $PRINTF "test $F_n $TEST... ${YELLOW}not with OpenSSL $OPENSSL_VERSION${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -11420,16 +10817,14 @@ if echo "$da" |diff - ${tf}1 >"$tdiff"; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif grep -i "Connection refused" "${te}1" >/dev/null; then $PRINTF "$CANT (conn failed)\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -11438,8 +10833,7 @@ else cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11461,21 +10855,17 @@ TEST="$NAME: OpenSSL connections do not block after renogotiation" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! [[ $(echo $OPENSSL_VERSION |awk '{print($2);}') =~ [01].* ]]; then # openssl s_client apparently provides renegotiation only up to version 1.2 $PRINTF "test $F_n $TEST... ${YELLOW}not with OpenSSL $OPENSSL_VERSION${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -11500,16 +10890,14 @@ if echo "$da" |diff - ${tf}1 >"$tdiff"; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif grep -i "Connection refused" "${te}1" >/dev/null; then $PRINTF "$CANT (conn failed)\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -11518,8 +10906,7 @@ else cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11550,14 +10937,12 @@ $CMD0 </dev/null 1>&0 2>"${te}0" rc0=$? if [ $rc0 -lt 128 ] || [ $rc0 -eq 255 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11585,14 +10970,12 @@ $CMD0 </dev/null 1>&0 2>"${te}0" rc0=$? if [ $rc0 -lt 128 ] || [ $rc0 -eq 255 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11621,14 +11004,12 @@ $CMD0 </dev/null 1>&0 2>"${te}0" rc0=$? if [ $rc0 -lt 128 ] || [ $rc0 -eq 255 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11668,16 +11049,14 @@ if [ $rc1 -ne 0 ]; then echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif grep -q ' W ' "${te}1"; then $PRINTF "$FAILED\n" echo "$CMD0 &" echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - ${tf}1 >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -11685,12 +11064,10 @@ elif ! echo "$da" |diff - ${tf}1 >"$tdiff"; then cat "${te}0" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -11716,14 +11093,12 @@ $CMD0 >/dev/null 2>"${te}0" rc0=$? if [ $rc0 -ne 0 -a -f "$tf" ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11748,14 +11123,12 @@ $CMD0 >/dev/null 2>"${te}0" rc0=$? if [ $rc0 -ne 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11795,26 +11168,21 @@ if [ $rc1 -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif [ ! -e "$tw" ]; then $PRINTF "$NO_RESULT (no wc -c output)\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif [ "$bytes" -eq $(cat "$tw") ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED (incomplete)\n" echo "transferred only $(cat $tw) of $bytes bytes" >&2 @@ -11822,9 +11190,7 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -11839,12 +11205,10 @@ TEST="$NAME: OpenSSL server with cipher aNULL " if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -11865,13 +11229,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then #cat "${te}1" #cat "${te}2" #cat "$tdiff" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -11898,12 +11260,10 @@ TEST="$NAME: max-children option" if ! eval $NUMCOND; then :; elif ! testfeats "$FEAT" >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$FEAT not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runs$RUNS >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$(toupper $RUNS) not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else case "X$IPPORT" in "XPORT") @@ -11935,8 +11295,7 @@ relsleep 2 kill $pid1 $pid2 $pid0 2>/dev/null; wait if echo -e "$da 1\n$da 2" |diff - $tf >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -11946,8 +11305,7 @@ else cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -11986,12 +11344,10 @@ TEST="$NAME: max-children option" if ! eval $NUMCOND; then :; elif ! testfeats "$FEAT" >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$FEAT not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runs$RUNS >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$(toupper $RUNS) not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else case "X$IPPORT" in "XPORT") @@ -12025,8 +11381,7 @@ cpids="$(childpids $pid0)" kill $pid1 $pid2 $pid0 $cpids 2>/dev/null; wait if echo -e "$da 1" |diff - $tf >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -12036,8 +11391,7 @@ else cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -12067,8 +11421,7 @@ TEST="$NAME: test for buffer overflow in readline prompt handling" if ! eval $NUMCOND; then :; elif ! feat=$(testfeats readline pty); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -12086,14 +11439,12 @@ if [ $rc -ne 0 ]; then $PRINTF "${YELLOW}framework failed${NORMAL}\n" elif [ $rc0 -eq 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" grep -v ^rc= "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -12155,8 +11506,7 @@ if [ $rc2 -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ -f "$tdiff" -a ! -s "$tdiff" ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -12165,8 +11515,7 @@ elif [ -f "$tdiff" -a ! -s "$tdiff" ]; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -12175,8 +11524,7 @@ else cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # ulimit -n fi # NUMCOND @@ -12216,19 +11564,16 @@ rc1=$? if [ $rc1 -lt 128 ]; then if [ "$EF" ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$UNKNOWN $RED(install ElectricFEnce!)$NORMAL\n" - numCANT=$((num+1)) - listCANT="$listCANT $N" + cant fi else $PRINTF "$FAILED\n" echo "$CMD1" cat "${te}" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -12269,26 +11614,21 @@ if [ -z "$KEEPALIVE" ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif [ "$KEEPALIVE" = "1" ]; then $PRINTF "$OK\n"; if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED (KEEPALIVE=$KEEPALIVE)\n" echo "$CMD0 &" cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -12308,8 +11648,7 @@ TEST="$NAME: test OPENSSL-CONNECT with bind option" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf0="$td/test$N.0.stdout" @@ -12334,8 +11673,7 @@ if [ "$rc1" -ne 0 ]; then echo "$CMD1" cat "$te0" cat "$te1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - $tf1 >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -12343,12 +11681,10 @@ elif ! echo "$da" |diff - $tf1 >"$tdiff"; then cat "${te}0" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -12366,8 +11702,7 @@ if ! eval $NUMCOND; then :; elif [ -z "$SECONDADDR" ]; then # we need access to a second address $PRINTF "test $F_n $TEST... ${YELLOW}need a second IPv4 address${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -12387,24 +11722,20 @@ sleep 1 kill $pid0 2>/dev/null; wait if [ $rc1 != 0 ]; then $PRINTF "${YELLOW}invocation failed${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! [ -f "$tf" ]; then $PRINTF "$FAILED\n" echo "$CMD0 &" echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "${YELLOW}diff failed${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # $SECONDADDR, NUMCOND @@ -12430,8 +11761,7 @@ FEAT=$(echo "$ssldist" |tr a-z A-Z) if ! eval $NUMCOND; then :; elif ! testfeats $FEAT >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$FEAT not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -12470,8 +11800,7 @@ if [ $rc1 != 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif effval="$(grep SOCAT_${SSLDIST}_${MODULE}_${FIELD} "${tf}" |sed -e 's/^[^=]*=//' |sed -e "s/[\"']//g")"; [ "$effval" = "$VALUE" ]; then $PRINTF "$OK\n" @@ -12481,8 +11810,7 @@ elif effval="$(grep SOCAT_${SSLDIST}_${MODULE}_${FIELD} "${tf}" |sed -e 's/^[^=] echo "$CMD1" cat "${te}1" fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "expected \"$VALUE\", got \"$effval\"" >&2 @@ -12490,8 +11818,7 @@ else cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND, feats ;; @@ -12553,18 +11880,15 @@ if [ "$ERRNOENT" ]; then echo "$CMD0 &" cat "$te0" cat "$tlog" - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed elif [ "$perms" != "600" ]; then $PRINTF "${RED}perms \"$perms\", expected \"600\" ${NORMAL}\n" echo "$CMD0 &" cat "$te0" - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - let numOK=numOK+1 - listOK="$listOK $N" + ok fi set +xv fi # NUMCOND @@ -12629,18 +11953,15 @@ if [ "$ERRNOENT" ]; then echo "$CMD0 &" cat "$te0" cat "$tlog" - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed elif [ "$perms" != "511" ]; then $PRINTF "${RED}perms \"$perms\", expected \"511\" ${NORMAL}\n" echo "$CMD0 &" cat "$te0" - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - let numOK=numOK+1 - listOK="$listOK $N" + ok fi set +vx fi # NUMCOND @@ -12680,8 +12001,7 @@ TEST="$NAME: $ADDR applies option user" if ! eval $NUMCOND; then :; elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tlog="$td/test$N.log" te0="$td/test$N.0.stderr" @@ -12705,20 +12025,17 @@ if [ "$ERRNOENT" ]; then echo "$CMD0 &" cat "$te0" >&2 cat "$tlog" >&2 - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed elif [ "$user" != "$SUBSTUSER" ]; then $PRINTF "${FAILD}(user \"$user\", expected \"$SUBSTUSER\")\n" echo "$CMD0 &" cat "$te0" >&2 - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi set +vx fi # NUMCOND @@ -12778,19 +12095,16 @@ if [ $rc1 != 0 ]; then echo "$CMD0 &" cat "$te0" cat "$tlog" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! [ $crit $tsock ]; then $PRINTF "$OK\n" - let numOK=numOK+1 - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "$te0" cat "$tlog" - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -12847,19 +12161,16 @@ if [ $rc1 != 0 ]; then echo "$CMD0 &" cat "$te0" cat "$tlog" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! [ $crit $tsock ]; then $PRINTF "$OK\n" - let numOK=numOK+1 - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "$te0" cat "$tlog" - let numFAIL=numFAIL+1 - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -12887,8 +12198,7 @@ TEST="$NAME: SYSTEM address does not shutdown its parents addresses" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -12912,8 +12222,7 @@ if [ $rc1 -ne 0 ]; then echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "${tf}1" >"$tdiff" 2>&1; then $PRINTF "$FAILED\n" echo "diff:" @@ -12922,12 +12231,10 @@ elif ! echo "$da" |diff - "${tf}1" >"$tdiff" 2>&1; then echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -12959,19 +12266,16 @@ if [ ! -f "$t0rc" ]; then echo "no return code of CMD0 stored" >&2 echo "$CMD0 &" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo 1 |diff - "$t0rc" >"$tdiff"; then $PRINTF "$FAILED\n" echo "CMD0 exited with $(cat $t0rc), expected 1" echo "$CMD0 &" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -12999,12 +12303,10 @@ TEST="$NAME: test OpenSSL method $method" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! socat -hhh |grep -q "^[[:space:]]*openssl-method[[:space:]]"; then $PRINTF "test $F_n $TEST... ${YELLOW}Option openssl-method not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -13017,8 +12319,7 @@ CMD1="$SOCAT $opts - OPENSSL-CONNECT:$LOCALHOST:$PORT,opensslmethod=$method,veri printf "test $F_n $TEST... " $N if [ "$method" = DTLS1 -a "$(echo -e "$OPENSSL_VERSION\n1.0.2" |sort |tail -n 1)" = "$OPENSSL_VERSION_GOOD" ]; then $PRINTF "${YELLOW}might hang, skipping${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $CMD0 >/dev/null 2>"${te}0" & pid0=$! @@ -13031,13 +12332,11 @@ fi echo "$da" |diff - "${tf}1" >"$tdiff" 2>/dev/null if [ $w0 -eq 0 ] && [ -f "${tf}1" ] && ! [ -s "$tdiff" ]; then $PRINTF "${YELLOW}WARN${NORMAL} (obsolete method succeeds)\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$OK (obsolete method fails)\n" cat "$tdiff" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi if [ "$VERBOSE" ]; then echo " $CMD0" @@ -13067,12 +12366,10 @@ TEST="$NAME: test OpenSSL method $method" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! socat -hhh |grep -q "^[[:space:]]*openssl-method[[:space:]]"; then $PRINTF "test $F_n $TEST... ${YELLOW}Option openssl-method not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -13089,8 +12386,7 @@ CMD1="$SOCAT $opts - OPENSSL-CONNECT:$LOCALHOST:$PORT,openssl-method=$method,ver printf "test $F_n $TEST... " $N if [ "$method" = DTLS1 -a "$(echo -e "$OPENSSL_VERSION\n1.0.2" |sort |tail -n 1)" = "$OPENSSL_VERSION_GOOD" ]; then $PRINTF "${YELLOW}might hang, skipping${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $CMD0 >/dev/null 2>"${te}0" & pid0=$! @@ -13104,8 +12400,7 @@ rc1=$? kill $pid0 2>/dev/null; wait if echo "$da" |diff - "${tf}1" >"$tdiff"; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok if [ "$VERBOSE" ]; then echo " $CMD0" echo " echo \"$da\" |$CMD1" @@ -13117,8 +12412,7 @@ else echo "$CMD1" cat "${te}1" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed #esac fi fi # !DTLS1 hang @@ -13140,17 +12434,14 @@ TEST="$NAME: security of OpenSSL server with openssl-min-proto-version" if ! eval $NUMCOND; then :; elif ! testaddrs openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions openssl-min-proto-version); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! [ "$OPENSSL_LATEST_PROTO_VERSION" -a "$OPENSSL_BEFORELAST_PROTO_VERSION" -a \ "$OPENSSL_LATEST_PROTO_VERSION" != "$OPENSSL_BEFORELAST_PROTO_VERSION" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}cannot determine two available SSL/TLS versions${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv newport tcp4 @@ -13178,15 +12469,13 @@ $CMD >/dev/null 2>"${te}" rc=$? if [ $rc -eq 1 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" echo "command did not terminate with error!" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13215,12 +12504,10 @@ if [ $rc0 -eq 0 ]; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -13249,12 +12536,10 @@ if [ $rc0 -eq 0 ]; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -13276,8 +12561,7 @@ TEST="$NAME: test the so-reuseaddr option" if ! eval $NUMCOND; then :; elif ! feat=$(testoptions so-reuseaddr); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4; tp="$PORT" tf="$td/test$N.stdout" @@ -13305,8 +12589,7 @@ if ! echo "$da" |diff - "$tf"; then $PRINTF "${YELLOW}phase 1 failed${NORMAL}\n" echo "$CMD0 &" echo "$CMD1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc3 -ne 0 ]; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" @@ -13314,8 +12597,7 @@ elif [ $rc3 -ne 0 ]; then echo "$CMD2 &" echo "$CMD3" cat "${te}2" "${te}3" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "${tf}3"; then $PRINTF "$FAILED: $TRACE $SOCAT:\n" echo "$CMD0 &" @@ -13323,13 +12605,11 @@ elif ! echo "$da" |diff - "${tf}3"; then echo "$CMD2 &" echo "$CMD3" echo "$da" |diff - "${tf}3" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}0" "${te}1" "${te}2" "${te}3"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND, SO_REUSEADDR ;; @@ -13350,8 +12630,7 @@ TEST="$NAME: test the so-reuseport option" if ! eval $NUMCOND; then :; elif ! feat=$(testoptions so-reuseport); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4; tp="$PORT" tf="$td/test$N.stdout" @@ -13382,8 +12661,7 @@ if ! echo "$da2" |diff - "${tf}2"; then cat "${te}1" echo "$CMD2" cat "${te}2" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc3 -ne 0 ]; then $PRINTF "$FAILED:\n" echo "$CMD0 &" @@ -13394,8 +12672,7 @@ elif [ $rc3 -ne 0 ]; then cat "${te}2" echo "$CMD3" cat "${te}3" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da2" |diff - "${tf}2"; then $PRINTF "$FAILED:\n" echo "$CMD0 &" @@ -13407,8 +12684,7 @@ elif ! echo "$da2" |diff - "${tf}2"; then echo "$CMD3" cat "${te}3" echo "$da2" |diff - "${tf}2" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da3" |diff - "${tf}3"; then $PRINTF "$FAILED:\n" echo "$CMD0 &" @@ -13420,13 +12696,11 @@ elif ! echo "$da3" |diff - "${tf}3"; then echo "$CMD3" cat "${te}3" echo "$da3" |diff - "${tf}3" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}0" "${te}1" "${te}2" "${te}3"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND, SO_REUSEPORT ;; @@ -13452,15 +12726,13 @@ eval "$CMD0" >"${tf}0" 2>"${te}0" rc1=$? if echo "$da" |diff - "${tf}0" >"$tdiff"; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13480,12 +12752,10 @@ TEST="$NAME: test OpenSSL ECDHE" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! openssl ciphers |grep -q '\<ECDHE\>'; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl: cipher ECDHE not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -13512,12 +12782,10 @@ if [ $rc1 -ne 0 ]; then echo "client and stderr:" >&2 echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "${tf}1" >"$tdiff"; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "server and stderr:" >&2 @@ -13526,8 +12794,7 @@ else echo "client and stderr:" >&2 echo "$CMD0 &" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13557,14 +12824,12 @@ $CMD0 >/dev/null 2>"${te}0" rc0=$? if [ $rc0 -eq 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13593,19 +12858,16 @@ if [ $rc0 -ne 0 ]; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - ${tf}0 >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13625,13 +12887,11 @@ $CMD0 >/dev/null 2>"${te}0" rc0=$? if [ "$rc0" = "1" ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi ;; # NUMCOND esac @@ -13662,16 +12922,14 @@ $CMD1 2>"${te}1" rc0=$? if [ $rc0 -eq 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" echo "$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13698,14 +12956,12 @@ printf "test $F_n $TEST... " $N $CMD0 >/dev/null 2>"${te}0" if ! grep -q "ai_socktype not supported" ${te}0; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13736,16 +12992,14 @@ rc1=$? kill $pid0 2>/dev/null; wait if [ $(grep "socket 2 (fd .*) is at EOF" ${te}0 |wc -l) -eq 1 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13781,19 +13035,16 @@ if [ $rc0 -eq 0 ]; then $PRINTF "$FAILED (rc=$rc0)\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif [ $rc0 -eq 1 ]; then if grep -q "buffer size option (-b) to big" "${te}0"; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED (rc=$rc0)\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi fi # NUMCOND @@ -13820,14 +13071,12 @@ if grep -q -i -e "syntax error" -e "unexpected end" "${te}0"; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0" >&2; fi if [ "$debug" ]; then cat ${te} >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13849,8 +13098,7 @@ TEST="$NAME: Service name resolution works with SCTP" if ! eval $NUMCOND; then :; elif ! runssctp4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}SCTP4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -13860,18 +13108,15 @@ printf "test $F_n $TEST... " $N $CMD0 >/dev/null 2>"${te}0" if [ $? -eq 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif grep -q "Connection refused" ${te}0; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -13889,8 +13134,7 @@ TEST="$NAME: echo via file with o-direct" if ! eval $NUMCOND; then :; elif ! testoptions o-direct >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}o-direct not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.file" to="$td/test$N.stdout" @@ -13908,29 +13152,24 @@ if [ $rc -ne 0 ] && grep -q "Invalid argument" "$te" && [ $UNAME = Linux ]; then $PRINTF "${FAILED}\n" echo "$CMD" >&2 cat "$te" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" ;; + failed ;; *) $PRINTF "${YELLOW}inable file system${NORMAL}\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" ;; + cant ;; esac elif [ $rc -ne 0 ]; then $PRINTF "${FAILED}:\n" echo "$CMD" >&2 cat "$te" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$to" >$tdiff; then $PRINTF "${FAILED}\n" echo "$CMD" >&2 cat "$te" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi # command ok fi ;; # NUMCOND, feats esac @@ -13964,8 +13203,7 @@ rc1=$? kill $pid0 2>/dev/null; wait if test -S $uns && ! test -S $unc; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -13973,8 +13211,7 @@ else ls -ld $uns $unc cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14008,8 +13245,7 @@ rc1=$? kill $pid0 2>/dev/null; wait if test -S $uns && ! test -S $unc; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -14017,8 +13253,7 @@ else ls -ld $uns $unc cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14036,20 +13271,16 @@ TEST="$NAME: OpenSSL DTLS client" if ! eval $NUMCOND; then :; elif ! a=$(testfeats ip4 udp openssl); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs openssl-dtls-client); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not found${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -14074,13 +13305,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD" cat "$te" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "$te"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -14096,25 +13325,20 @@ TEST="$NAME: OpenSSL DTLS server" if ! eval $NUMCOND; then :; elif ! a=$(testfeats ip4 udp openssl) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs openssl-dtls-server); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not found${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [[ $(openssl version |awk '{print($2);}') =~ 0.9.8[a-ce] ]]; then # also on NetBSD-4 with openssl-0.9.8e $PRINTF "test $F_n $TEST... ${YELLOW}openssl s_client might hang${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -14134,8 +13358,7 @@ rc=$? kill $pid1 2>/dev/null; wait if echo "$da" |diff - $tf >"$tdiff"; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -14143,8 +13366,7 @@ else echo "$CMD" cat "$te" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14159,12 +13381,10 @@ TEST="$NAME: OpenSSL server authentication with SubjectAltName (hostname)" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestaltcert testalt tf="$td/test$N.stdout" @@ -14186,13 +13406,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD1" >&2 cat "${te}1" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -14207,12 +13425,10 @@ TEST="$NAME: OpenSSL server authentication with SubjectAltName (IPv4 address)" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 openssl >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestaltcert testalt tf="$td/test$N.stdout" @@ -14234,13 +13450,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD1" >&2 cat "${te}1" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -14255,12 +13469,10 @@ TEST="$NAME: OpenSSL server authentication with SubjectAltName (IPv6 address)" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip6 openssl >/dev/null || ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestaltcert testalt tf="$td/test$N.stdout" @@ -14282,13 +13494,11 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then echo "$CMD1" >&2 cat "${te}1" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -14308,8 +13518,7 @@ TEST="$NAME: raw dump of transferred data" if ! eval $NUMCOND; then :; elif [ $($SOCAT -h |grep -e ' -[rR] ' |wc -l) -lt 2 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Options -r, -R not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -14339,12 +13548,10 @@ if ! echo "$da1" |diff - $tr1 >$tdiff1 || ! echo "$da2" |diff - $tr2 >$tdiff2; t cat $tdiff1 >&2 echo "Right-to-left:" >&2 cat $tdiff2 >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -14364,16 +13571,13 @@ SNISERVER=badssl.com if ! eval $NUMCOND; then :; elif ! testaddrs openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions openssl-snihost); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ -z "$INTERNET" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}use test.sh option --internet${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -14385,14 +13589,12 @@ $CMD0 >/dev/null 2>"${te}0" rc0=$? if [ $rc0 -eq 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" >&2 cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14413,16 +13615,13 @@ SNISERVER=badssl.com if ! eval $NUMCOND; then :; elif ! testaddrs openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions openssl-no-sni); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ -z "$INTERNET" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}use test.sh option --internet${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -14434,14 +13633,12 @@ $CMD0 >/dev/null 2>"${te}0" rc0=$? if [ $rc0 -ne 0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" >&2 cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14457,12 +13654,10 @@ TEST="$NAME: test the accept-timeout option" if ! eval $NUMCOND; then :; elif ! feat=$(testaddrs tcp); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testoptions accept-timeout); then $PRINTF "test $F_n $TEST... ${YELLOW}$(echo "$feat"| tr 'a-z' 'A-Z') not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # Just start a process with accept-timeout 1s and check if it still runs 2s later # but before this, we test if the process waits at all @@ -14482,8 +13677,7 @@ if ! kill $pid1 2>"$tk1"; then echo $CMD1 >&2 cat "$te1" >&2 cat "$tk1" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # Second, set accept-timeout and see if socat exits before kill CMD2="$TRACE $SOCAT $opts TCP-LISTEN:$PORT,reuseaddr,accept-timeout=$(reltime 1) PIPE" @@ -14495,12 +13689,10 @@ if kill $pid2 2>"$tk2"; then echo "$CMD2" >&2 cat "$te2" >&2 cat "$tk2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi wait @@ -14520,8 +13712,7 @@ TEST="$NAME: test UDP-DATAGRAM ignoring peerport" if ! eval $NUMCOND; then : elif [ $(echo $E "$SOCAT_VERSION\n1.7.3.4" |sort -n |tail -n 1) = 1.7.3.4 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only with Socat 1.7.4.0 or higher${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -14542,8 +13733,7 @@ sleep 0.1 kill $pid0 2>/dev/null; wait if [ -f ${tf}0 ] && echo "$da" |diff - ${tf}0 >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 @@ -14551,8 +13741,7 @@ else echo "$CMD1" >&2 cat "${te}1" >&2 cat "${tdiff}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14568,16 +13757,13 @@ TEST="$NAME: proxy-authorization-file option" if ! eval $NUMCOND; then :; elif ! testfeats proxy >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}PROXY not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats listen tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testoptions proxy-authorization-file >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option proxy-authorization-file not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ta="$td/test$N.auth" tf="$td/test$N.stdout" @@ -14603,8 +13789,7 @@ if [ $rc1 -ne 0 ]; then echo "$CMD1" >&2 cat "${te}1" >&2 cat "${tf}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! grep -q '^Proxy-authorization: Basic dXNlcjpzM2NyM3QK$' ${tf}0; then $PRINTF "$FAILED:\n" echo "$CMD0 &" >&2 @@ -14613,13 +13798,11 @@ elif ! grep -q '^Proxy-authorization: Basic dXNlcjpzM2NyM3QK$' ${tf}0; then cat "${te}1" >&2 cat "${tf}0" >&2 echo "Authorization string not in client request" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ -n "$debug" ]; then cat "${te}1" "${te}2"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -14638,8 +13821,7 @@ TEST="$NAME: test communication via VSOCK loopback socket" if ! eval $NUMCOND; then :; elif ! fea=$(testfeats VSOCK); then $PRINTF "test $F_n $TEST... ${YELLOW}$fea not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -14657,36 +13839,30 @@ rc1=$? kill $pid0 2>/dev/null; wait if [ $rc1 -ne 0 ] && [ "$UNAME" != Linux ]; then $PRINTF "${YELLOW}works only on Linux?${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc1 -ne 0 ] && [ "$UNAME" = Linux ] && ! [[ $UNAME_R =~ ^[6-9]\.* ]] && ! [[ $UNAME_R =~ ^5\.[6-]\.* ]] && ! [[ $UNAME_R =~ ^5\.[1-9][0-9].* ]]; then $PRINTF "${YELLOW}works only on Linux from 5.6${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif grep -q "No such device" "${te}1"; then $PRINTF "${YELLOW}Loopback does not work${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $rc1 -ne 0 ]; then $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - ${tf}1 >${tdiff}$N; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14708,16 +13884,13 @@ TEST="$NAME: OpenSSL stream from client to server" if ! eval $NUMCOND; then :; elif ! a=$(testfeats ip4 tcp openssl); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs openssl-listen openssl-connect); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv ti="$td/test$N.datain" @@ -14743,12 +13916,10 @@ if [ $rc1 -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif diff $ti $to >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 @@ -14758,8 +13929,7 @@ else echo "diff:" >&2 head -n 2 $tdiff >&2 echo ... >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14780,16 +13950,13 @@ TEST="$NAME: OpenSSL stream from server to client" if ! eval $NUMCOND; then :; elif ! a=$(testfeats ip4 tcp openssl); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs openssl-listen openssl-connect); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv ti="$td/test$N.datain" @@ -14815,12 +13982,10 @@ if [ $rc1 -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif diff $ti $to >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 @@ -14830,8 +13995,7 @@ else echo "diff:" >&2 head -n 2 $tdiff >&2 echo ... >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14851,21 +14015,17 @@ TEST="$NAME: OpenSSL DTLS transfer from client to server" if ! eval $NUMCOND; then :; elif ! a=$(testfeats ip4 udp openssl); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs openssl-dtls-listen openssl-dtls-connect); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [[ $(openssl version |awk '{print($2);}') =~ 0.9.8[a-ce] ]]; then # also on NetBSD-4 with openssl-0.9.8e $PRINTF "test $F_n $TEST... ${YELLOW}openssl s_client might hang${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv ti="$td/test$N.datain" @@ -14891,12 +14051,10 @@ if [ $rc1 -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif diff $ti $to >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 @@ -14906,8 +14064,7 @@ else echo "diff:" >&2 head -n 2 $tdiff >&2 echo ... >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -14927,21 +14084,17 @@ TEST="$NAME: OpenSSL DTLS transfer from server to client" if ! eval $NUMCOND; then :; elif ! a=$(testfeats ip4 udp openssl); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs openssl-dtls-listen openssl-dtls-connect); then $PRINTF "test $F_n $TEST... ${YELLOW}$a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [[ $(openssl version |awk '{print($2);}') =~ 0.9.8[a-ce] ]]; then # also on NetBSD-4 with openssl-0.9.8e $PRINTF "test $F_n $TEST... ${YELLOW}openssl s_client might hang${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv ti="$td/test$N.datain" @@ -14967,12 +14120,10 @@ if [ $rc1 -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif diff $ti $to >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 @@ -14982,8 +14133,7 @@ else echo "diff:" >&2 head -n 2 $tdiff >&2 echo ... >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15002,16 +14152,13 @@ TEST="$NAME: test diverse of socket,openssl params" if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! type openssl >/dev/null 2>&1; then $PRINTF "test $F_n $TEST... ${YELLOW}openssl executable not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv tf="$td/test$N.stdout" @@ -15032,19 +14179,17 @@ sleep 0.5 kill $pid0 2>/dev/null; wait if [ $rc1 -ne 0 ]; then $PRINTF "$CANT\n" - numCANT=$((numCANT+1)) + cant elif [ ! -e $trc0 ]; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15063,12 +14208,10 @@ TEST="$NAME: Test if OpenSSL server may be crashed by client cert with IPv6 addr if ! eval $NUMCOND; then :; elif ! testfeats openssl >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}OPENSSL not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! testfeats tcp ip4 >/dev/null || ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}TCP/IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else gentestcert testsrv gentestaltcert testalt @@ -15088,16 +14231,14 @@ rc1=$? kill $pid0 2>/dev/null; wait if [ $rc1 -eq 0 ] && echo "$da" |diff - "${tf}0" >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15128,14 +14269,12 @@ if [ $rc -ne 0 ]; then if [ "$VERBOSE" ]; then echo "$CMD &" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD &" >&2 cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15154,8 +14293,7 @@ TEST="$NAME: Is the fs related user option on ABSTRACT socket applied to FD" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -15171,14 +14309,12 @@ if [ $rc -eq 0 ]; then if [ "$VERBOSE" ]; then echo "$CMD" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" >&2 cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15208,21 +14344,18 @@ if [ ! -f "$ts" ]; then echo "$CMD" >&2 cat "${te}" >&2 fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ ! -s "$ts" ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD &" >&2 cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15295,8 +14428,7 @@ if [ $rc1 != 1 ]; then fi echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif nerr=$(grep ' E ' "${te}1" |wc -l); test "$nerr" -ne 1; then $PRINTF "$FAILED ($nerr error message(s) instead of 1)\n" if [ "$pid0" ]; then @@ -15305,16 +14437,14 @@ elif nerr=$(grep ' E ' "${te}1" |wc -l); test "$nerr" -ne 1; then fi echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then if [ "$pid0" ]; then echo "$CMD0 &" >&2; fi echo "$CMD1" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi set +vx fi # NUMCOND @@ -15390,24 +14520,21 @@ if [ $rc1 -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "${tf}1" >$tdiff; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &" >&2 echo "$CMD1" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" >&2 cat "${te}0" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15437,14 +14564,12 @@ if [ $rc0 -eq 0 ]; then if [ "$VERBOSE" ]; then echo "$CMD0" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" >&2 cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15482,20 +14607,17 @@ if [[ $LOWPORT =~ [0-9][0-9]* ]] && [ "$LOWPORT" -ge 640 -a "$LOWPORT" -le 1023 $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif $SOCAT -V |grep -q "undef WITH_SYCLS"; then $PRINTF "$CANT (no SYCLS)\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15520,14 +14642,12 @@ printf "test $F_n $TEST... " $N $CMD0 </dev/null >/dev/null 2>"${te}0" if grep -q "missing numerical value" "${te}0"; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15553,14 +14673,12 @@ if grep -q "trailing garbage" "${te}0"; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0" >&2; fi if [ "$debug" ]; then cat ${te} >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15590,16 +14708,14 @@ if [ "$target" = "$tf" ]; then echo "ln -s \"$tf\" \"$tl\"" echo "$FILAN -f "$tl" 2>$te |tail -n 1 |sed 's/.*LINKTARGET=\([^ ]*\)/\1/'" fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "touch \"$tf\"" >&2 echo "ln -s \"$tf\" \"$tl\"" >&2 echo "$FILAN -f "$tl" 2>$te |tail -n 1 |sed 's/.*LINKTARGET=\([^ ]*\)/\1/'" >&2 cat "$te" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi kill $spid 2>/dev/null wait @@ -15653,8 +14769,7 @@ for addr in exec system; do cat "${te}0" echo "{ echo -n \"${da:0:20}\"; relsleep 1; echo \"${da:20}\"; } |$CMD1" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "${tf}1" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" >&2 @@ -15663,16 +14778,14 @@ for addr in exec system; do cat "${te}1" >&2 echo "diff:" >&2 cat $tdiff >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &" >&2 echo "{ echo -n \"${da:0:20}\"; relsleep 1; echo \"${da:20}\"; } |$CMD1" >&2 fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi MICROS=$SAVEMICS fi # NUMCOND @@ -15693,12 +14806,10 @@ TEST="$NAME: Dalan syntax error does not raise SIGSEGV" if ! eval $NUMCOND; then : elif ! a=$(testfeats GOPEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs - GOPEN SOCKET-LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -15712,21 +14823,18 @@ if [ $rc1 -eq 1 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif [ $rc1 -eq 139 ]; then $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else # soemthing unexpected happened $PRINTF "$CANT\n" echo "$CMD" cat "${te}" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant fi fi # NUMCOND ;; @@ -15746,20 +14854,16 @@ TEST="$NAME: filan -s displays TCP etc" if ! eval $NUMCOND; then : elif ! a=$(testfeats STDIO IP4 TCP LISTEN EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs STDIO TCP4 TCP4-LISTEN EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions so-reuseaddr nofork ) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -15781,8 +14885,7 @@ if [ $rc1 -eq 0 -a "$result" = tcp ]; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" if [ $rc1 -ne 0 ]; then @@ -15794,8 +14897,7 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15819,20 +14921,16 @@ TEST="$NAME: Restoring of terminal settings" if ! eval $NUMCOND; then : elif ! $(type stty >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}stty not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testfeats STDIO SYSTEM PTY GOPEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! a=$(testaddrs - STDIO SYSTEM GOPEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions cfmakeraw pty setsid ctty stderr) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else te="$td/test$N.stderr" tx0="$td/test$N.stty0" @@ -15847,16 +14945,14 @@ if diff $tx0 $tx1 >$tdiff 2>&1; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD &"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" >&2 cat "${te}.outer" >&2 cat $tdiff >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15876,12 +14972,10 @@ TEST="$NAME: Socat does not leak FDs to EXEC'd program" if ! eval $NUMCOND; then :; elif ! a=$(testaddrs STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions stderr) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -15895,15 +14989,13 @@ if [ "$(cat "${tf}" |grep -v ' door ' |wc -l)" -eq 3 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" >&2 cat "${te}" >&2 cat "${tf}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15923,12 +15015,10 @@ TEST="$NAME: Socat does not leak sniffing FDs" if ! eval $NUMCOND; then :; elif ! a=$(testaddrs STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions stderr) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -15942,15 +15032,13 @@ if [ "$(cat "${tf}" |grep -v ' door ' |wc -l)" -eq 3 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" >&2 cat "${te}" >&2 cat "${tf}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -15976,20 +15064,16 @@ TEST="$NAME: ${KEYW}-RECVFROM with fork option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats $FEAT STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs - STDIO SYSTEM $PROTO-RECVFROM $PROTO-SENDTO); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions fork ) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runs$RUNS >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}$(toupper $RUNS) not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else case "X$IPPORT" in "XPORT") @@ -16029,8 +15113,7 @@ if $ECHO "$da 2\n$da 1" |diff -u - $tf >$tdiff; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -16041,9 +15124,7 @@ else cat "${te}2" >&2 echo "diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16066,16 +15147,13 @@ TEST="$NAME: Option -S can turn off logging of SIGTERM" if ! eval $NUMCOND; then :; elif ! $SOCAT -h | grep -e " -S\>" >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option -S not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16092,16 +15170,13 @@ if ! grep "exiting on signal" ${te}0 >/dev/null; then if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$DEBUG" ]; then echo "kill -TERM <pid>" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 echo "kill -TERM <pid>" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16119,16 +15194,13 @@ TEST="$NAME: Option -S can turn on logging of signal 31" if ! eval $NUMCOND; then :; elif ! $SOCAT -h | grep -e " -S\>" >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option -S not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16145,16 +15217,13 @@ if grep "exiting on signal" ${te}0 >/dev/null; then if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$DEBUG" ]; then echo "kill -31 <pid>" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 echo "kill -31 <pid>" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16170,24 +15239,19 @@ TEST="$NAME: PROXY-CONNECT with option http-version" if ! eval $NUMCOND; then :; elif ! $(type proxyecho.sh >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}proxyecho.sh not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats IP4 TCP LISTEN EXEC STDIO PROXY); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs TCP4-LISTEN EXEC STDIO PROXY-CONNECT); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions so-reuseaddr crlf pf proxyport http-version) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.sh" tf="$td/test$N.stdout" @@ -16209,16 +15273,14 @@ if ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" >&2 echo "diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$debug" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$debug" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid 2>/dev/null wait @@ -16236,20 +15298,16 @@ TEST="$NAME: test the so-rcvtimeo option with DTLS" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO OPENSSL); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO DTLS); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions verify so-rcvtimeo) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else # We need a hanging connection attempt, guess an address for this HANGIP=0.0.0.1 @@ -16267,8 +15325,7 @@ if ! kill -0 $pid1 2>"$tk1"; then $PRINTF "${YELLOW}does not hang${NORMAL}\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant wait else # DTLS restarts read() a few times @@ -16283,16 +15340,14 @@ if kill $pid2 2>"$tk2"; then echo "$CMD2" >&2 cat "$te2" >&2 cat "$tk2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed while kill $pid2 2>/dev/null; do :; done wait else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD2 &"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi wait @@ -16314,20 +15369,16 @@ TEST="$NAME: sniff file names with variables" if ! eval $NUMCOND; then :; elif ! A=$(testfeats IP4 TCP LISTEN PIPE STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs - TCP4 TCP4-LISTEN PIPE STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions so-reuseaddr fork) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16354,9 +15405,7 @@ if [ $rc1a != 0 -o $rc1b != 0 ]; then cat "${te}1a" >&2 echo "$CMD1" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif test $(ls -l $td/test$N.*.log |wc -l) -eq 4 && test $(ls $td/test$N.*.log |head -n 1 |wc -c) -ge 56; then # Are the names correct? @@ -16369,8 +15418,7 @@ elif test $(ls -l $td/test$N.*.log |wc -l) -eq 4 && if [ "$DEBUG" ]; then cat "${te}1a" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif test -f $td/test$N.\$PROGNAME-\$TIMESTAMP.\$MICROS-\$SERVER0_PEERADDR-\$\$.in.log; then $PRINTF "$FAILED (vars not resolved)\n" echo "$CMD0 &" @@ -16379,9 +15427,7 @@ elif test -f $td/test$N.\$PROGNAME-\$TIMESTAMP.\$MICROS-\$SERVER0_PEERADDR-\$\$. cat "${te}1a" >&2 echo "$CMD1" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$FAILED (unknown)\n" echo "$CMD0 &" @@ -16390,9 +15436,7 @@ else cat "${te}1a" >&2 echo "$CMD1" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16410,20 +15454,16 @@ TEST="$NAME: Socat option --statistics" if ! eval $NUMCOND; then :; elif ! $(type >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}tee not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats STATS STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions pty cfmakeraw) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16438,21 +15478,17 @@ if [ $rc0 -ne 0 ]; then $PRINTF "$CANT\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(grep STATISTICS "${te}0" |wc -l) -eq 2 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16469,24 +15505,19 @@ TEST="$NAME: statistics on SIGUSR1" if ! eval $NUMCOND; then :; elif ! $(type tee >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}tee not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! $(type pkill >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}pkill not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats STATS STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions pty cfmakeraw) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16507,15 +15538,12 @@ if [ "$(grep STATISTICS "${te}0" |wc -l)" -eq 2 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16534,16 +15562,13 @@ TEST="$NAME: test the children-shutup option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats UNIX LISTEN EXEC FILE); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs UNIX-LISTEN TCP4 FILE UNIX-CONNECT); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions fork children-shutup) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else newport tcp4 ts="$td/test$N.sock" @@ -16567,17 +15592,14 @@ if grep -q " W connect" ${te}0; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16597,28 +15619,22 @@ TEST="$NAME: INTERFACE ignores outgoing packets" if ! eval $NUMCOND; then :; elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! $(type ping >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}ping not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! feat=$(testfeats TUN STDIO INTERFACE); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs - TUN STDIO INTERFACE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions iff-up tun-type tun-name ) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16651,8 +15667,7 @@ if [ $? -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif test -s "${tf}1"; then $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -16661,8 +15676,7 @@ elif test -s "${tf}1"; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -16671,8 +15685,7 @@ else if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND, feats esac @@ -16692,20 +15705,16 @@ TEST="$NAME: test if option reuseaddr's default is 1" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO PIPE IP4 TCP LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO PIPE TCP4 TCP4-LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions accept-timeout) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16732,8 +15741,7 @@ if [ $rc0b -eq 0 ]; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD0b"; fi if [ "$DEBUG" ]; then cat "${te}0b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0a &" @@ -16742,9 +15750,7 @@ else cat "${te}1" >&2 echo "$CMD0b" cat "${te}0b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16763,20 +15769,16 @@ TEST="$NAME: test if option reuseaddr's default is 1 with SSL-L" if ! eval $NUMCOND; then :; elif ! F=$(testfeats PIPE IP6 TCP OPENSSL LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs PIPE OPENSSL-CONNECT OPENSSL-LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions verify cert key) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv6 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16807,8 +15809,7 @@ if [ $rc0b -eq 0 ]; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD0b"; fi if [ "$DEBUG" ]; then cat "${te}0b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0a &" @@ -16817,9 +15818,7 @@ else cat "${te}1" >&2 echo "$CMD0b" cat "${te}0b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16838,20 +15837,16 @@ TEST="$NAME: test option reuseaddr without value" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO PIPE IP4 TCP LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO PIPE TCP4-CONNECT TCP4-LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions so-reuseaddr accept-timeout) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16878,8 +15873,7 @@ if [ $rc0b -eq 1 ] && grep -q -e "Address already in use" -e "Address in use" "$ if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD0b"; fi if [ "$DEBUG" ]; then cat "${te}0b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok #elif grep -q "accept: \(Connection\|Operation\) timed out" "${te}0b"; then elif grep -q "accept: .* timed out" "${te}0b"; then # FreeBSD, Solaris do not seem to need SO_REUSEADDR with TCP at all @@ -16890,8 +15884,7 @@ elif grep -q "accept: .* timed out" "${te}0b"; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD0b"; fi if [ "$DEBUG" ]; then cat "${te}0b" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$FAILED\n" echo "$CMD0a &" @@ -16900,9 +15893,7 @@ else cat "${te}1" >&2 echo "$CMD0b" cat "${te}0b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -16925,28 +15916,22 @@ TEST="$NAME: try all available TCP4 addresses" if ! eval $NUMCOND; then :; elif ! $(type nslookup >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}nslookup not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant #elif ! $(type nslookup >/dev/null 2>&1) && ! $(type host >/dev/null 2>&1); then # $PRINTF "test $F_n $TEST... ${YELLOW}nslookup and host not available${NORMAL}\n" $N -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" +# cant elif ! F=$(testfeats IP4 TCP GOPEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs TCP4-CONNECT GOPEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ -z "$INTERNET" ]; then $PRINTF "test $F_n $TEST... ${YELLOW}use test.sh option --internet${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -16980,15 +15965,12 @@ if [ $(grep " N opening connection to .*AF=2 " ${te} |wc -l) -eq 2 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17009,32 +15991,25 @@ TEST="$NAME: for TCP try all available IPv4 and IPv6 addresses" if ! eval $NUMCOND; then :; #elif ! $(type nslookup >/dev/null 2>&1) && ! $(type host >/dev/null 2>&1); then # $PRINTF "test $F_n $TEST... ${YELLOW}nslookup and host not available${NORMAL}\n" $N -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" +# cant elif ! F=$(testfeats IP4 IP6 TCP); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs TCP-CONNECT GOPEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions ai-addrconfig) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip6 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv6 not available or not routable${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ -z "$INTERNET" ]; then # only needs Internet DNS $PRINTF "test $F_n $TEST... ${YELLOW}use test.sh option --internet${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17082,15 +16057,12 @@ if [ $(grep " N opening connection to .*AF=[0-9]" ${te} |wc -l) -eq 2 ]; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD"; fi if [ "$DEBUG" ]; then cat "${te}" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD" cat "${te}" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17110,32 +16082,25 @@ TEST="$NAME: option netns (net namespace $ns)" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! $(type ip >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}ip program not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats IP4 TCP LISTEN NAMESPACES); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO TCP-LISTEN TCP EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions netns) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17167,9 +16132,7 @@ if [ $rc1 -ne 0 ]; then echo "$CMD1" cat "${te}1" >&2 echo "ip netns del $ns" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif echo "$da" |od -c |diff - ${tf}1 >"$tdiff"; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then @@ -17183,8 +16146,7 @@ elif echo "$da" |od -c |diff - ${tf}1 >"$tdiff"; then if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "ip netns del $ns"; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED (bad output)\n" echo "$CMD0 &" @@ -17193,9 +16155,7 @@ else cat "${te}1" >&2 diff: cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17217,32 +16177,25 @@ TEST="$NAME: option netns with EXEC (net namespace $ns)" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ $(id -u) -ne 0 -a "$withroot" -eq 0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Must be root${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! $(type ip >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}ip program not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats IP4 ABSTRACT_UNIXSOCKET UDP LISTEN NAMESPACES STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs ABSTRACT-RECV ABSTRACT-SENDTO CREATE EXEC UDP4-RECV STDIO UDP4); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $a not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions netns) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17275,9 +16228,7 @@ if [ $rc1 -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif echo "$da" |diff - ${tf}0 >"$tdiff" 2>/dev/null; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -17286,8 +16237,7 @@ elif echo "$da" |diff - ${tf}0 >"$tdiff" 2>/dev/null; then if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED (bad output)\n" echo "$CMD0 &" @@ -17298,9 +16248,7 @@ else cat "${te}2" >&2 echo diff: cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17321,11 +16269,9 @@ if ! cond=$(checkconds \ "" \ "" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else - testecho "$N" "$TEST" "STDIO" "SOCKETPAIR" "$opts" + testecho "$N" "$NAME" "$TEST" "STDIO" "SOCKETPAIR" "$opts" fi esac N=$((N+1)) @@ -17343,11 +16289,9 @@ if ! cond=$(checkconds \ "" \ "" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else - testecho "$N" "$TEST" "STDIO" "SOCKETPAIR,socktype=2" "$opts" + testecho "$N" "$NAME" "$TEST" "STDIO" "SOCKETPAIR,socktype=2" "$opts" fi esac N=$((N+1)) @@ -17365,11 +16309,9 @@ if ! cond=$(checkconds \ "" \ "" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else - testecho "$N" "$TEST" "STDIO" "SOCKETPAIR,socktype=$SOCK_SEQPACKET" "$opts" + testecho "$N" "$NAME" "$TEST" "STDIO" "SOCKETPAIR,socktype=$SOCK_SEQPACKET" "$opts" fi esac N=$((N+1)) @@ -17387,20 +16329,16 @@ TEST="$NAME: Internal socketpair keeps packet boundaries" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO IP4 UDP SOCKETPAIR); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs - STDIO UDP4-DATAGRAM SOCKETPAIR); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions bind socktype ) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17425,8 +16363,7 @@ if [ "$rc2" -ne 0 ]; then cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD1 &" @@ -17435,16 +16372,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}2" >&2 echo diff: cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2 &"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -17464,20 +16399,16 @@ TEST="$NAME: ACCEPT-FD address" if ! eval $NUMCOND; then :; elif ! $(type systemd-socket-activate >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}systemd-socket-activate not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats IP4 TCP LISTEN); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs ACCEPT-FD PIPE STDIO TCP4); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17499,8 +16430,7 @@ if echo "$da" |diff "${tf}1" - >$tdiff; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -17508,9 +16438,7 @@ else echo "$CMD1" cat "${te}1" >&2 cat $tdiff >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17531,20 +16459,16 @@ TEST="$NAME: POSIX-MQ (Linux) with prio" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats POSIXMQ STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs POSIXMQ-SEND POSIXMQ-READ STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions mq-prio unlink-early unlink-close) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17571,9 +16495,7 @@ if [ $rc0a -ne 0 -o $rc0b -ne 0 ]; then cat "${te}0b" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif $ECHO "$da 1\n$da 0" |diff - ${tf}1 >${tdiff}1; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0a"; fi @@ -17582,8 +16504,7 @@ elif $ECHO "$da 1\n$da 0" |diff - ${tf}1 >${tdiff}1; then if [ "$DEBUG" ]; then cat "${te}0b" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0a" @@ -17594,9 +16515,7 @@ else cat "${te}1" >&2 echo "difference:" >&2 cat ${tdiff}1 >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17615,20 +16534,16 @@ TEST="$NAME: POSIX-MQ (Linux) RECV with fork" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats POSIXMQ STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs POSIXMQ-SEND POSIXMQ-RECEIVE STDIO); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions fork unlink-early unlink-close) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17656,9 +16571,7 @@ if [ $rc1a -ne 0 -o $rc1b -ne 0 ]; then cat "${te}1a" >&2 echo "$CMD1b" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif $ECHO "$da 0\n$da 1" |diff - ${tf}0 >${tdiff}0; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi @@ -17667,8 +16580,7 @@ elif $ECHO "$da 0\n$da 1" |diff - ${tf}0 >${tdiff}0; then if [ "$DEBUG" ]; then cat "${te}1a" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1b"; fi if [ "$DEBUG" ]; then cat "${te}1b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" @@ -17679,9 +16591,7 @@ else cat "${te}1b" >&2 echo "difference:" >&2 cat ${tdiff}0 >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17702,20 +16612,16 @@ TEST="$NAME: POSIX-MQ (Linux) RECV with fork,max-children" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats POSIXMQ STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs POSIXMQ-SEND POSIXMQ-RECEIVE STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions fork max-children unlink-early unlink-close) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17746,9 +16652,7 @@ if [ $rc1a -ne 0 -o $rc1b -ne 0 ]; then cat "${te}1a" >&2 echo "$CMD1b" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif $ECHO "$da 1\n$da 2\n$da 3" |diff - ${tf}0 >${tdiff}0; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi @@ -17757,8 +16661,7 @@ elif $ECHO "$da 1\n$da 2\n$da 3" |diff - ${tf}0 >${tdiff}0; then if [ "$DEBUG" ]; then cat "${te}1a" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1b"; fi if [ "$DEBUG" ]; then cat "${te}1b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" @@ -17769,9 +16672,7 @@ else cat "${te}1b" >&2 echo "difference:" >&2 cat ${tdiff}0 >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17794,24 +16695,19 @@ TEST="$NAME: POSIX-MQ (Linux) SEND with fork,max-children" if ! eval $NUMCOND; then :; elif [ "$UNAME" != Linux ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Only on Linux${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats POSIXMQ STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs POSIXMQ-SEND POSIXMQ-READ STDIO SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions fork max-children mq-prio unlink-early unlink-close) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant #elif ! runsposixmq >/dev/null; then # $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available${NORMAL}\n" $N -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" +# cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17841,8 +16737,7 @@ if $ECHO "$da 1\n$da 2\n$da 3" |diff - ${tf}0 >${tdiff}0; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0" @@ -17851,9 +16746,7 @@ else cat "${te}1" >&2 echo "difference:" >&2 cat ${tdiff}0 >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17872,16 +16765,13 @@ TEST="$NAME: sigint option with SHELL" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO SHELL PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SHELL PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions setsid sigint) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -17902,15 +16792,12 @@ if grep -q " W waitpid..: child .* exited with status 130" "${te}0" || $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -17927,14 +16814,12 @@ TEST="$NAME: simple echo via SHELL of cat with socketpair" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO SHELL); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SHELL); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "SHELL:$CAT" "$opts" "$val_t" + testecho "$N" "$NAME" "$TEST" "" "SHELL:$CAT" "$opts" "$val_t" fi esac N=$((N+1)) @@ -17948,14 +16833,12 @@ TEST="$NAME: simple echo via SHELL of cat with pipes" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO SHELL SOCKETPAIR); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SHELL PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "SHELL:$CAT,pipes" "$opts" "$val_t" + testecho "$N" "$NAME" "$TEST" "" "SHELL:$CAT,pipes" "$opts" "$val_t" fi esac N=$((N+1)) @@ -17969,19 +16852,16 @@ TEST="$NAME: simple echo via SHELL of cat with pty" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO SHELL PTY); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SHELL PTY); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ "$SHELL" = /bin/ksh ]; then # on NetBSD-9.3 this test kills test.sh script... $PRINTF "test $F_n $TEST... ${YELLOW}/bin/ksh might kill test.sh${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testecho "$N" "$TEST" "" "SHELL:$CAT,pty,$PTYOPTS,$PTYOPTS2" "$opts" "$val_t" + testecho "$N" "$NAME" "$TEST" "" "SHELL:$CAT,pty,$PTYOPTS,$PTYOPTS2" "$opts" "$val_t" fi esac N=$((N+1)) @@ -17995,14 +16875,12 @@ TEST="$NAME: call od -c via SHELL using socketpair" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO SHELL); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SHELL); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testod "$N" "$TEST" "" "SHELL:$OD_C" "$opts" "$val_t" + testod "$N" "$NAME" "$TEST" "" "SHELL:$OD_C" "$opts" "$val_t" fi esac N=$((N+1)) @@ -18016,14 +16894,12 @@ TEST="$NAME: call od -c via SHELL using pipes" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO SHELL SOCKETPAIR); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SHELL PIPE); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else - testod "$N" "$TEST" "" "SHELL:$OD_C,pipes" "$opts" "$val_t" + testod "$N" "$NAME" "$TEST" "" "SHELL:$OD_C,pipes" "$opts" "$val_t" fi esac N=$((N+1)) @@ -18043,20 +16919,16 @@ elif [ "$UNAME" = "NetBSD" ]; then # On NetBSD-4.0 and NetBSD-9.3 this test hangs (signal has no effect) # (other versions not tried) $PRINTF "test $F_n $TEST... ${YELLOW}might hang on $UNAME${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats SYCLS STDIO SYSTEM SOCKETPAIR); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO SYSTEM SOCKETPAIR); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions setsid sigint) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18078,15 +16950,12 @@ if grep -q " W waitpid..: child .* exited with status 130" "${te}0"; then $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "${YELLOW}FAILED (shell does not propagate SIGINT?${NORMAL}\n" echo "$CMD0 &" cat "${te}0" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant fi fi # NUMCOND ;; @@ -18106,20 +16975,16 @@ TEST="$NAME: test the res-nsaddr option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO IP4 UDP TCP); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO TCP4 UDP-RECVFROM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions res-nsaddr) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! runsip4 >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}IPv4 not available on host${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18142,26 +17007,21 @@ if grep "$da" "${tf}0" >/dev/null; then if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok elif pgrep -u root nscd >/dev/null 2>&1; then $PRINTF "${YELLOW}FAILED (due to nscd?)${NORMAL}\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCAnT="$namesCANT $NAME" + cant else $PRINTF "$FAILED (query not received)\n" echo "$CMD0 &" cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed fi fi # NUMCOND ;; @@ -18190,16 +17050,13 @@ TEST="$NAME: restore of pwd after CREAT with chdir option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats CREAT SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs - CREAT SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions chdir) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18224,31 +17081,24 @@ else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif [ "$tpwd" != "$td" ]; then $PRINTF "$FAILED (chdir failed)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$pwd2" |diff "$td/$tc" - >$tdiff; then $PRINTF "$FAILED (bad pwd2)\n" echo "$CMD0 &" cat "${te}0" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18268,16 +17118,13 @@ TEST="$NAME: restore of pwd after SYSTEM with chdir option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats SHELL SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs SHELL SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions chdir) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18303,31 +17150,24 @@ else $PRINTF "$FAILED (rc=$rc0)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif [ "$tpwd" != "$td" ]; then $PRINTF "$FAILED (chdir failed)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$pwd2" |diff "$td/$tc" - >$tdiff; then $PRINTF "$FAILED (bad pwd)\n" echo "$CMD0 &" cat "${te}0" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18348,16 +17188,13 @@ TEST="$NAME: test restore after CREAT with umask option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats CREAT SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs CREAT SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions umask) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18387,30 +17224,23 @@ else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif [ $((tumask + tperms - 0666)) -ne 0 ]; then $PRINTF "$FAILED (umask failed)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! [ "$oumask" -eq $(cat "$tc") ]; then $PRINTF "$FAILED (bad umask)\n" echo "$CMD0 &" cat "${te}0" >&2 cat "$tdebug" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18430,16 +17260,13 @@ TEST="$NAME: test restore after SHELL with umask option" if ! eval $NUMCOND; then :; elif ! F=$(testfeats SHELL SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs SHELL SYSTEM); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions umask) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18469,30 +17296,23 @@ else $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif [ $((tumask + tperms - 0666)) -ne 0 ]; then $PRINTF "$FAILED (umask failed)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! [ "$oumask" -eq $(cat "$tc") ]; then $PRINTF "$FAILED (bad umask)\n" echo "$CMD0 &" cat "${te}0" >&2 cat "$tdebug" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18522,12 +17342,10 @@ TEST="$NAME: Option unix-bind-tempname" if ! eval $NUMCOND; then :; elif [[ $CLI_ =~ ABSTRACT-* ]] && ! feat=$(testfeats abstract-unixsocket); then $PRINTF "test $F_n $TEST... ${YELLOW}$feat not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions unix-bind-tempname) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else ts="$td/test$N.sock" tf="$td/test$N.stdout" @@ -18573,8 +17391,7 @@ if [ $rc2b -ne 0 ]; then cat "${te}2a" >&2 echo "$CMD2" cat "${te}2b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da a" |diff - ${tf}2a >${tdiff}2a; then $PRINTF "$FAILED (phase a)\n" echo "$CMD0 &" @@ -18585,8 +17402,7 @@ elif ! echo "$da a" |diff - ${tf}2a >${tdiff}2a; then cat "${te}2a" >&2 echo "diff a:" >&2 cat ${tdiff}2a >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da b" |diff - ${tf}2b >${tdiff}2b; then $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -18599,8 +17415,7 @@ elif ! echo "$da b" |diff - ${tf}2b >${tdiff}2b; then cat "${te}2b" >&2 echo "diff b:" >&2 cat ${tdiff}2b >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -18611,8 +17426,7 @@ else if [ "$DEBUG" ]; then cat "${te}2a" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18669,8 +17483,7 @@ if [ -e $ts3 ]; then cat "${te}0b" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! grep -q " E " ${te}1; then $PRINTF "$FAILED\n" echo "Socat did not fail" @@ -18680,8 +17493,7 @@ elif ! grep -q " E " ${te}1; then cat "${te}0b" >&2 echo "$CMD1" >&2 cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0a"; fi @@ -18690,8 +17502,7 @@ else if [ "$DEBUG" ]; then cat "${te}0b" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18710,20 +17521,16 @@ TEST="$NAME: f-setpipe-sz on STDIN" if ! eval $NUMCOND; then :; elif ! $(type true >/dev/null 2>&1); then $PRINTF "test $F_n $TEST... ${YELLOW}true not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! F=$(testfeats STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions f-setpipe-sz nofork) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18742,24 +17549,19 @@ if [ "$rc0" -ne 0 ]; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! diff <(echo $PIPESZ2) <(echo $PIPESZ2b) >$tdiff; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" >&2 echo "diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18776,16 +17578,13 @@ TEST="$NAME: f-setpipe-sz on EXEC with pipes" if ! eval $NUMCOND; then :; elif ! F=$(testfeats STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Feature $F not configured in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! A=$(testaddrs STDIO EXEC); then $PRINTF "test $F_n $TEST... ${YELLOW}Address $A not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif ! o=$(testoptions pipes f-setpipe-sz) >/dev/null; then $PRINTF "test $F_n $TEST... ${YELLOW}Option $o not available in $SOCAT${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18802,24 +17601,19 @@ if [ "$rc0" -ne 0 ]; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! diff <(echo $PIPESZ2) <(echo $PIPESZ2b) >$tdiff; then $PRINTF "$FAILED\n" echo "$CMD0 &" cat "${te}0" >&2 echo "diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -18838,8 +17632,7 @@ elif ! cond=$(checkconds "" "" "" \ "so-reuseaddr" \ "dccp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18860,9 +17653,7 @@ if [ $? -ne 0 ]; then cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -18871,17 +17662,14 @@ elif ! echo "$da" |diff - "$tf" >"$tdiff"; then cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi kill $pid1 2>/dev/null wait @@ -18904,9 +17692,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "udplite4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18929,8 +17715,7 @@ else cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD1 &" >&2 @@ -18939,17 +17724,14 @@ else cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -18971,9 +17753,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "udplite4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -18996,8 +17776,7 @@ else cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD1 &" >&2 @@ -19006,17 +17785,14 @@ else cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -19038,9 +17814,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "udplite4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19063,8 +17837,7 @@ else cat "${te}1" >&2 echo "$CMD2" cat "${te}2" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif ! echo "$da" |diff - "$tf" >"$tdiff"; then $PRINTF "$FAILED (diff)\n" echo "$CMD1 &" >&2 @@ -19073,17 +17846,14 @@ else cat "${te}2" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD1 &"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi ;; # NUMCOND esac @@ -19117,9 +17887,7 @@ elif ! cond=$(checkconds \ "$REUSEADDR bind" \ "$protov" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19157,8 +17925,7 @@ if [ $rc1 != 0 ]; then cat "${te}0" echo "$CMD1" cat "${te}1" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant elif [ "$(grep SOCAT_SOCKADDR "${tf}" |sed -e 's/^[^=]*=//' |sed -e "s/[\"']//g")" = "$TEST_SOCKADDR" -a \ "$(grep SOCAT_PEERADDR "${tf}" |sed -e 's/^[^=]*=//' -e "s/[\"']//g")" = "$TEST_PEERADDR" -a \ \( "$PORTMETHOD" = ',' -o "$(grep SOCAT_SOCKPORT "${tf}" |sed -e 's/^[^=]*=//' |sed -e 's/"//g')" = "$TEST_SOCKPORT" \) -a \ @@ -19171,8 +17938,7 @@ elif [ "$(grep SOCAT_SOCKADDR "${tf}" |sed -e 's/^[^=]*=//' |sed -e "s/[\"']//g" echo "$CMD1" cat "${te}1" fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -19181,8 +17947,7 @@ else cat "${te}1" echo -e "SOCAT_SOCKADDR=$TEST_SOCKADDR\nSOCAT_PEERADDR=$TEST_PEERADDR\nSOCAT_SOCKPORT=$TEST_SOCKPORT\nSOCAT_PEERPORT=$TEST_PEERPORT" | diff - "${tf}" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND, feats ;; @@ -19222,9 +17987,7 @@ elif ! cond=$(checkconds \ "$REUSEADDR o-trunc o-creat o-append fork max-children $SHUT" \ "$RUNS" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else case "X$IPPORT" in "XPORT") @@ -19258,8 +18021,7 @@ cpids="$(childpids $pid0)" kill $pid1 $pid2 $cpids $pid0 2>/dev/null; wait if echo -e "$da 1" |diff - $tf >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" echo "$CMD0 &" @@ -19269,8 +18031,7 @@ else cat "${te}1" cat "${te}2" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi fi # NUMCOND ;; @@ -19298,8 +18059,7 @@ elif ! cond=$(checkconds \ "" \ "" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19312,24 +18072,19 @@ else $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! tty |diff - <(cat ${tf}0 |grep "controlling terminal" |grep -v -e '"/dev/tty"' -e none |head -n 1 |sed -e 's/controlling terminal by .*:[[:space:]]*//' -e 's/"//g') >$tdiff; then $PRINTF "$FAILED\n" echo "$CMD0" cat "${te}0" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19354,9 +18109,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "tcp4 unix" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else ts="$td/test$N.sock" tf="$td/test$N.stdout" @@ -19379,9 +18132,7 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "${tf}1" >$tdiff; then $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -19390,17 +18141,14 @@ else cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19425,14 +18173,10 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "tcp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif [[ $BASH_VERSION =~ ^[1-3]\. ]]; then $PRINTF "test $F_n $TEST... ${YELLOW}requires bash 4 or higher${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else gentestcert testsrv tp="$td/test$N.pty" @@ -19457,9 +18201,7 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "${tf}1" >$tdiff; then $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -19468,17 +18210,14 @@ else cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19506,9 +18245,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "tcp4 unix" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19546,9 +18283,7 @@ else cat "${te}2a" >&2 echo "{ relsleep 20; echo \"\$da_b\"; relsleep 10; } |$CMD2" cat "${te}2b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! $ECHO "$da_a\n$da_b" |diff - "${tf}2a" >${tdiff}_a; then $PRINTF "$FAILED (diff a)\n" echo "$CMD0 &" @@ -19561,9 +18296,7 @@ else cat "${te}2b" >&2 echo "// diff a:" >&2 cat "${tdiff}_a" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! $ECHO "$da_a\n$da_b" |diff - "${tf}2b" >${tdiff}_b; then $PRINTF "$FAILED (diff b)\n" echo "$CMD0 &" @@ -19576,9 +18309,7 @@ else cat "${te}2b" >&2 echo "// diff b:" >&2 cat "${tdiff}_b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -19589,8 +18320,7 @@ else if [ "$DEBUG" ]; then cat "${te}2a" >&2; fi if [ "$VERBOSE" ]; then echo "{ relsleep 20; echo \"\$da_b\"; relsleep 10; } |$CMD2"; fi if [ "$DEBUG" ]; then cat "${te}2b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19617,9 +18347,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "udp4 tcp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19648,9 +18376,7 @@ else cat "${te}1a" >&2 echo "{ relsleep 20; echo \"\$da_b\"; relsleep 10; } |$CMD1" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! $ECHO "$da_a\n$da_b" |diff - "${tf}1a" >${tdiff}_a; then $PRINTF "$FAILED (diff a)\n" echo "$CMD0 &" @@ -19661,9 +18387,7 @@ else cat "${te}1b" >&2 echo "// diff a:" >&2 cat "${tdiff}_a" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! $ECHO "$da_a\n$da_b" |diff - "${tf}1b" >${tdiff}_b; then $PRINTF "$FAILED (diff b)\n" echo "$CMD0 &" @@ -19674,9 +18398,7 @@ else cat "${te}1b" >&2 echo "// diff b:" >&2 cat "${tdiff}_b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -19685,8 +18407,7 @@ else if [ "$DEBUG" ]; then cat "${te}1a" >&2; fi if [ "$VERBOSE" ]; then echo "{ relsleep 20; echo \"\$da_b\"; relsleep 10.; } |$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19716,9 +18437,7 @@ elif ! cond=$(checkconds \ "fork" \ "udp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19740,35 +18459,28 @@ else cat "${te}0" >&2 echo "echo \$da\" |$CMD1" cat "${te}1" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif [ $(grep -c " E open(" "${te}0") -eq 0 ]; then $PRINTF "$CANT (no error)\n" echo "$CMD0 &" cat "${te}0" >&2 echo "echo \$da\" |$CMD1" cat "${te}1" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif [ $(grep -c " E open(" "${te}0") -ge 2 ]; then $PRINTF "$FAILED (this bug)\n" echo "$CMD0 &" head -n 2 "${te}0" >&2 echo "echo \$da\" |$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19796,9 +18508,7 @@ elif ! cond=$(checkconds \ "fork" \ "udp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19823,9 +18533,7 @@ else cat "${te}1a" >&2 echo "echo \$da b\" |$CMD1" cat "${te}1b" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif [ $(grep -c " I socketpair(" "${te}0") -ne 2 ]; then $PRINTF "$CANT (not 2 socketpair())\n" echo "$CMD0 &" @@ -19834,9 +18542,7 @@ else cat "${te}1a" >&2 echo "echo \$da b\" |$CMD1" cat "${te}1b" >&2 - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif ! diff <(grep " I socketpair(" "${te}0" |head -n 1 |sed 's/.*\( I socketpair.*\)/\1/') <(grep " I socketpair(" "${te}0" |tail -n 1 |sed 's/.*\( I socketpair.*\)/\1/') >/dev/null 2>&1; then $PRINTF "$FAILED (this bug)\n" echo "$CMD0 &" @@ -19845,9 +18551,7 @@ else cat "${te}1a" >&2 echo "echo \$da b\" |$CMD1" cat "${te}1b" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi @@ -19856,8 +18560,7 @@ else if [ "$DEBUG" ]; then cat "${te}1a" >&2; fi if [ "$VERBOSE" ]; then echo "echo \$da b\" |$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1b" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19886,9 +18589,7 @@ elif ! cond=$(checkconds \ "pf" \ "ip4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -19902,15 +18603,12 @@ else $PRINTF "$FAILED (rc0=$rc0)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -19955,9 +18653,7 @@ TEST="$NAME: TCP-L with -0 accepts IPv4" if ! eval $NUMCOND; then : elif [ -z "$opt0" -a $SOCAT_VERSION != 1.8.0.0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Option -0 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif ! cond=$(checkconds \ "" \ "" \ @@ -19967,9 +18663,7 @@ elif ! cond=$(checkconds \ "" \ "tcp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else opt0= if SOCAT_MAIN_WAIT= $SOCAT -h |grep -e '[[:space:]]-0[[:space:]]' >/dev/null; then @@ -19997,21 +18691,17 @@ else if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) ;; + ok ;; Linux) $PRINTF "$FAILED (rc1=$rc1)\n" echo "$CMD0 &" cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" ;; + failed ;; *) $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" ;; + cant ;; esac else $PRINTF "$OK\n" @@ -20019,7 +18709,7 @@ else if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) + ok fi fi # NUMCOND ;; @@ -20036,9 +18726,7 @@ TEST="$NAME: TCP-L with -0 accepts IPv6" if ! eval $NUMCOND; then : elif [ -z "$opt0" -a $SOCAT_VERSION != 1.8.0.0 ]; then $PRINTF "test $F_n $TEST... ${YELLOW}Option -0 not available${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant elif ! cond=$(checkconds \ "" \ "" \ @@ -20048,9 +18736,7 @@ elif ! cond=$(checkconds \ "" \ "tcp6" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -20072,16 +18758,14 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) + ok fi fi # NUMCOND ;; @@ -20125,9 +18809,7 @@ elif ! cond=$(checkconds \ "${option%%=*}" \ "$(tolower $PROTO)4 $(tolower $PROTO)6" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -20142,9 +18824,7 @@ else printf "test $F_n $TEST... " $N if [ -z "$ACCEPT_TIMEOUT" ] && [ -z "$BIN_TIMEOUT" ]; then $PRINTF "$CANT (would block)\n" - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else if [ "$BIN_TIMEOUT" ]; then $BIN_TIMEOUT 0.1 $CMD0 >/dev/null 2>"${te}0" @@ -20157,15 +18837,12 @@ else $PRINTF "$FAILED (rc0=$rc0)\n" echo "$CMD0 &" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # not would block fi # NUMCOND @@ -20225,9 +18902,7 @@ elif ! cond=$(checkconds \ "bind" \ "$protov" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -20246,15 +18921,12 @@ else $PRINTF "$FAILED (rc0=$rc0)\n" echo "$CMD0" cat "${te}0" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -20295,9 +18967,7 @@ elif ! cond=$(checkconds \ "bind" \ "$protov" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -20323,15 +18993,12 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -20368,9 +19035,7 @@ elif ! cond=$(checkconds \ "" \ "" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.file" te="$td/test$N.stderr" @@ -20386,9 +19051,7 @@ else # $PRINTF "$CANT (rc0=$rc0)\n" # echo "$CMD0" # cat "${te}0" >&2 -# numCANT=$((numCANT+1)) -# listCANT="$listCANT $N" -# namesCANT="$namesCANT $NAME" +# cant # elif ! echo "$da" |diff - "$tf" >$tdiff; then if ! echo "$da" |diff - "$tf" >$tdiff; then $PRINTF "$FAILED (diff)\n" @@ -20396,17 +19059,14 @@ else cat "${te}0" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi fi # NUMCOND ;; @@ -20463,17 +19123,14 @@ if [ $rc1 -ne 0 ]; then echo "$CMD1" cat "${te}0" cat "${te}1" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed elif echo "$da" |diff - "$tf" >$tdiff; then $PRINTF "$OK\n" - numOK=$((numOK+1)) - listOK="$listOK $N" + ok else $PRINTF "$FAILED\n" cat "$tdiff" - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" + failed fi if ! ls -l $f |diff "$td/test$N.$F.ls-l" -; then $PRINTF "${RED}this test changed properties of $f!${NORMAL}\n" @@ -20494,8 +19151,11 @@ set -- $listOK; while [ "$1" ]; do echo "$1"; shift; done >"$td/success.lst" ln -sf "$td/success.lst" . set -- $listFAIL; while [ "$1" ]; do echo "$1"; shift; done >"$td/failed.lst" ln -sf "$td/failed.lst" . -sort -n <(cat "$td/success.lst" |while read x; do echo "$x OK"; done) <(cat "$td/cannot.lst" |while read x; do echo "$x CANT"; done) <(cat "$td/failed.lst" |while read x; do echo "$x FAILED"; done) >"$td/result.txt" -ln -sf "$td/result.txt" . +#sort -n <(cat "$td/success.lst" |while read x; do echo "$x OK"; done) <(cat "$td/cannot.lst" |while read x; do echo "$x CANT"; done) <(cat "$td/failed.lst" |while read x; do echo "$x FAILED"; done) >"$td/result.txt" +#ln -sf "$td/result.txt" . + +ln -sf "$td/results.txt" . + if [ "$numCANT" -gt 0 ]; then echo "CANT: $listCANT" fi @@ -20508,8 +19168,6 @@ if [ -z "$OPT_EXPECT_FAIL" ]; then exit # with rc from above statement fi -#set -vx - if [ "$OPT_EXPECT_FAIL" ]; then diff <(set -- $(echo "$EXPECT_FAIL" |tr ',' ' '); while [ "$1" ]; do echo "$1"; shift; done) "$td/failed.lst" >"$td/failed.diff" ln -sf "$td/failed.diff" . @@ -20565,9 +19223,7 @@ elif ! cond=$(checkconds \ "so-reuseaddr" \ "tcp4" ); then $PRINTF "test $F_n $TEST... ${YELLOW}$cond${NORMAL}\n" $N - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" - namesCANT="$namesCANT $NAME" + cant else tf="$td/test$N.stdout" te="$td/test$N.stderr" @@ -20590,9 +19246,7 @@ else cat "${te}0" >&2 echo "$CMD1" cat "${te}1" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif ! echo "$da" |diff - "${tf}1" >$tdiff; then $PRINTF "$FAILED (diff)\n" echo "$CMD0 &" @@ -20601,9 +19255,7 @@ else cat "${te}1" >&2 echo "// diff:" >&2 cat "$tdiff" >&2 - numFAIL=$((numFAIL+1)) - listFAIL="$listFAIL $N" - namesFAIL="$namesFAIL $NAME" + failed elif [ ??? ]; then # The test could not run meaningfully $PRINTF "$CANT\n" @@ -20611,17 +19263,16 @@ else if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numCANT=$((numCANT+1)) - listCANT="$listCANT $N" + cant else $PRINTF "$OK\n" if [ "$VERBOSE" ]; then echo "$CMD0 &"; fi if [ "$DEBUG" ]; then cat "${te}0" >&2; fi if [ "$VERBOSE" ]; then echo "$CMD1"; fi if [ "$DEBUG" ]; then cat "${te}1" >&2; fi - numOK=$((numOK+1)) - listOK="$listOK $N" + ok fi + result fi # NUMCOND ;; esac