mirror of
https://repo.or.cz/socat.git
synced 2024-12-23 07:52:32 +00:00
test generic sockets for TCP6 and UNIX
This commit is contained in:
parent
b0adfb95ae
commit
e337b51405
1 changed files with 104 additions and 9 deletions
113
test.sh
113
test.sh
|
@ -8486,7 +8486,7 @@ N=$((N+1))
|
||||||
|
|
||||||
|
|
||||||
# test the SOCKET-CONNECT address (against TCP4-LISTEN)
|
# test the SOCKET-CONNECT address (against TCP4-LISTEN)
|
||||||
NAME=SOCKET_CONNECT
|
NAME=SOCKET_CONNECT_TCP4
|
||||||
case "$TESTS" in
|
case "$TESTS" in
|
||||||
*%functions%*|*%generic%*|*%socket%*|*%$NAME%*)
|
*%functions%*|*%generic%*|*%socket%*|*%$NAME%*)
|
||||||
TEST="$NAME: socket connect with TCP/IPv4"
|
TEST="$NAME: socket connect with TCP/IPv4"
|
||||||
|
@ -8501,7 +8501,7 @@ ts1p=$(printf "%04x" $ts0p);
|
||||||
ts1a="7f000001" # "127.0.0.1"
|
ts1a="7f000001" # "127.0.0.1"
|
||||||
ts1="x${ts1p}${ts1a}x0000000000000000"
|
ts1="x${ts1p}${ts1a}x0000000000000000"
|
||||||
ts1b=$(printf "%04x" $PORT); PORT=$((PORT+1))
|
ts1b=$(printf "%04x" $PORT); PORT=$((PORT+1))
|
||||||
da="$(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts TCP4-LISTEN:$ts0p,reuseaddr,bind=$ts0a PIPE"
|
CMD0="$SOCAT $opts TCP4-LISTEN:$ts0p,reuseaddr,bind=$ts0a PIPE"
|
||||||
CMD1="$SOCAT $opts - SOCKET-CONNECT:2:6:$ts1,bind=x${ts1b}00000000x0000000000000000"
|
CMD1="$SOCAT $opts - SOCKET-CONNECT:2:6:$ts1,bind=x${ts1b}00000000x0000000000000000"
|
||||||
printf "test $F_n $TEST... " $N
|
printf "test $F_n $TEST... " $N
|
||||||
|
@ -8535,6 +8535,101 @@ esac
|
||||||
PORT=$((PORT+1))
|
PORT=$((PORT+1))
|
||||||
N=$((N+1))
|
N=$((N+1))
|
||||||
|
|
||||||
|
# test the SOCKET-CONNECT address (against TCP6-LISTEN)
|
||||||
|
NAME=SOCKET_CONNECT_TCP6
|
||||||
|
case "$TESTS" in
|
||||||
|
*%functions%*|*%generic%*|*%tcp6%*|*%socket%*|*%$NAME%*)
|
||||||
|
TEST="$NAME: socket connect with TCP/IPv6"
|
||||||
|
# start a TCP6-LISTEN process that echoes data, and send test data using
|
||||||
|
# SOCKET-CONNECT, selecting TCP/IPv6. The sent data should be returned.
|
||||||
|
tf="$td/test$N.stdout"
|
||||||
|
te="$td/test$N.stderr"
|
||||||
|
tdiff="$td/test$N.diff"
|
||||||
|
ts0p=$PORT; PORT=$((PORT+1))
|
||||||
|
ts0a="[::1]"
|
||||||
|
ts1p=$(printf "%04x" $ts0p);
|
||||||
|
ts1a="00000000000000000000000000000001" # "127.0.0.1"
|
||||||
|
ts1="x${ts1p}x000000000000x${ts1a}"
|
||||||
|
ts1b=$(printf "%04x" $PORT); PORT=$((PORT+1))
|
||||||
|
da="test$N $(date) $RANDOM"
|
||||||
|
CMD0="$SOCAT $opts TCP6-LISTEN:$ts0p,reuseaddr,bind=$ts0a PIPE"
|
||||||
|
CMD1="$SOCAT $opts - SOCKET-CONNECT:10:6:$ts1,bind=x${ts1b}x000000000000x00000000000000000000000000000000"
|
||||||
|
printf "test $F_n $TEST... " $N
|
||||||
|
$CMD0 2>"${te}0" &
|
||||||
|
pid0="$!"
|
||||||
|
waittcp6port $ts0p 1
|
||||||
|
echo "$da" |$CMD1 >>"$tf" 2>>"${te}1"
|
||||||
|
rc1="$?"
|
||||||
|
kill "$pid0" 2>/dev/null; wait;
|
||||||
|
if [ "$rc1" -ne 0 ]; then
|
||||||
|
$PRINTF "$FAILED: $SOCAT:\n"
|
||||||
|
echo "$CMD0 &"
|
||||||
|
cat "${te}0"
|
||||||
|
echo "$CMD1"
|
||||||
|
cat "${te}1"
|
||||||
|
numFAIL=$((numFAIL+1))
|
||||||
|
elif ! echo "$da" |diff - "$tf" >"$tdiff"; then
|
||||||
|
$PRINTF "$FAILED\n"
|
||||||
|
cat "$tdiff"
|
||||||
|
echo "$CMD0 &"
|
||||||
|
cat "${te}0"
|
||||||
|
echo "$CMD1"
|
||||||
|
cat "${te}1"
|
||||||
|
numFAIL=$((numFAIL+1))
|
||||||
|
else
|
||||||
|
$PRINTF "$OK\n"
|
||||||
|
if [ -n "$debug" ]; then cat $te; fi
|
||||||
|
numOK=$((numOK+1))
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
PORT=$((PORT+1))
|
||||||
|
N=$((N+1))
|
||||||
|
|
||||||
|
# test the SOCKET-CONNECT address (against UNIX-LISTEN)
|
||||||
|
NAME=SOCKET_CONNECT_UNIX
|
||||||
|
case "$TESTS" in
|
||||||
|
*%functions%*|*%generic%*|*%unix%*|*%socket%*|*%$NAME%*)
|
||||||
|
TEST="$NAME: socket connect with UNIX domain"
|
||||||
|
# start a UNIX-LISTEN process that echoes data, and send test data using
|
||||||
|
# SOCKET-CONNECT, selecting UNIX socket. The sent data should be returned.
|
||||||
|
tf="$td/test$N.stdout"
|
||||||
|
te="$td/test$N.stderr"
|
||||||
|
tdiff="$td/test$N.diff"
|
||||||
|
ts0="$td/test$N.server"
|
||||||
|
ts1="$td/test$N.client"
|
||||||
|
da="test$N $(date) $RANDOM"
|
||||||
|
CMD0="$SOCAT $opts UNIX-LISTEN:$ts0,reuseaddr PIPE"
|
||||||
|
CMD1="$SOCAT $opts - SOCKET-CONNECT:1:0:\\\"$ts0\\\0\\\",bind=\\\"$ts1\\\0\\\""
|
||||||
|
printf "test $F_n $TEST... " $N
|
||||||
|
$CMD0 2>"${te}0" &
|
||||||
|
pid0="$!"
|
||||||
|
waitfile $ts0 1
|
||||||
|
echo "$da" |$CMD1 >>"$tf" 2>>"${te}1"
|
||||||
|
rc1="$?"
|
||||||
|
kill "$pid0" 2>/dev/null; wait;
|
||||||
|
if [ "$rc1" -ne 0 ]; then
|
||||||
|
$PRINTF "$FAILED: $SOCAT:\n"
|
||||||
|
echo "$CMD0 &"
|
||||||
|
cat "${te}0"
|
||||||
|
echo "$CMD1"
|
||||||
|
cat "${te}1"
|
||||||
|
numFAIL=$((numFAIL+1))
|
||||||
|
elif ! echo "$da" |diff - "$tf" >"$tdiff"; then
|
||||||
|
$PRINTF "$FAILED\n"
|
||||||
|
cat "$tdiff"
|
||||||
|
echo "$CMD0 &"
|
||||||
|
cat "${te}0"
|
||||||
|
echo "$CMD1"
|
||||||
|
cat "${te}1"
|
||||||
|
numFAIL=$((numFAIL+1))
|
||||||
|
else
|
||||||
|
$PRINTF "$OK\n"
|
||||||
|
if [ -n "$debug" ]; then cat $te; fi
|
||||||
|
numOK=$((numOK+1))
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
N=$((N+1))
|
||||||
|
|
||||||
# test the SOCKET-LISTEN address (with TCP4-CONNECT)
|
# test the SOCKET-LISTEN address (with TCP4-CONNECT)
|
||||||
NAME=SOCKET_LISTEN
|
NAME=SOCKET_LISTEN
|
||||||
case "$TESTS" in
|
case "$TESTS" in
|
||||||
|
@ -8552,7 +8647,7 @@ ts0a="7f000001" # "127.0.0.1"
|
||||||
ts0="x${ts0p}${ts0a}x0000000000000000"
|
ts0="x${ts0p}${ts0a}x0000000000000000"
|
||||||
ts1b=$PORT; PORT=$((PORT+1))
|
ts1b=$PORT; PORT=$((PORT+1))
|
||||||
ts1="$ts1a:$ts1p"
|
ts1="$ts1a:$ts1p"
|
||||||
da="$(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts SOCKET-LISTEN:2:6:$ts0,reuseaddr PIPE"
|
CMD0="$SOCAT $opts SOCKET-LISTEN:2:6:$ts0,reuseaddr PIPE"
|
||||||
CMD1="$SOCAT $opts - TCP4-CONNECT:$ts1,bind=:$ts1b"
|
CMD1="$SOCAT $opts - TCP4-CONNECT:$ts1,bind=:$ts1b"
|
||||||
printf "test $F_n $TEST... " $N
|
printf "test $F_n $TEST... " $N
|
||||||
|
@ -8605,7 +8700,7 @@ ts1p=$(printf "%04x" $ts0p);
|
||||||
ts1a="7f000001" # "127.0.0.1"
|
ts1a="7f000001" # "127.0.0.1"
|
||||||
ts1="x${ts1p}${ts1a}x0000000000000000"
|
ts1="x${ts1p}${ts1a}x0000000000000000"
|
||||||
ts1b=$(printf "%04x" $PORT); PORT=$((PORT+1))
|
ts1b=$(printf "%04x" $PORT); PORT=$((PORT+1))
|
||||||
da="$(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts UDP4-RECVFROM:$ts0p,reuseaddr,bind=$ts0a PIPE"
|
CMD0="$SOCAT $opts UDP4-RECVFROM:$ts0p,reuseaddr,bind=$ts0a PIPE"
|
||||||
CMD1="$SOCAT $opts - SOCKET-SENDTO:2:$SOCK_DGRAM:17:$ts1,bind=x${ts1b}x00000000x0000000000000000"
|
CMD1="$SOCAT $opts - SOCKET-SENDTO:2:$SOCK_DGRAM:17:$ts1,bind=x${ts1b}x00000000x0000000000000000"
|
||||||
printf "test $F_n $TEST... " $N
|
printf "test $F_n $TEST... " $N
|
||||||
|
@ -8656,7 +8751,7 @@ ts0a="7f000001" # "127.0.0.1"
|
||||||
ts0="x${ts0p}${ts0a}x0000000000000000"
|
ts0="x${ts0p}${ts0a}x0000000000000000"
|
||||||
ts1b=$PORT; PORT=$((PORT+1))
|
ts1b=$PORT; PORT=$((PORT+1))
|
||||||
ts1="$ts1a:$ts1p"
|
ts1="$ts1a:$ts1p"
|
||||||
da="$(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts SOCKET-RECVFROM:2:$SOCK_DGRAM:17:$ts0,reuseaddr PIPE"
|
CMD0="$SOCAT $opts SOCKET-RECVFROM:2:$SOCK_DGRAM:17:$ts0,reuseaddr PIPE"
|
||||||
CMD1="$SOCAT $opts - UDP4-SENDTO:$ts1,bind=:$ts1b"
|
CMD1="$SOCAT $opts - UDP4-SENDTO:$ts1,bind=:$ts1b"
|
||||||
printf "test $F_n $TEST... " $N
|
printf "test $F_n $TEST... " $N
|
||||||
|
@ -8707,7 +8802,7 @@ ts0a="7f000001" # "127.0.0.1"
|
||||||
ts0="x${ts0p}${ts0a}x0000000000000000"
|
ts0="x${ts0p}${ts0a}x0000000000000000"
|
||||||
ts1b=$PORT; PORT=$((PORT+1))
|
ts1b=$PORT; PORT=$((PORT+1))
|
||||||
ts1="$ts1a:$ts1p"
|
ts1="$ts1a:$ts1p"
|
||||||
da="$(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts -u SOCKET-RECV:2:$SOCK_DGRAM:17:$ts0,reuseaddr -"
|
CMD0="$SOCAT $opts -u SOCKET-RECV:2:$SOCK_DGRAM:17:$ts0,reuseaddr -"
|
||||||
CMD1="$SOCAT $opts -u - UDP4-SENDTO:$ts1,bind=:$ts1b"
|
CMD1="$SOCAT $opts -u - UDP4-SENDTO:$ts1,bind=:$ts1b"
|
||||||
printf "test $F_n $TEST... " $N
|
printf "test $F_n $TEST... " $N
|
||||||
|
@ -8760,7 +8855,7 @@ ts1a="7f000001" # "127.0.0.1"
|
||||||
ts0b=$(printf "%04x" $ts0p)
|
ts0b=$(printf "%04x" $ts0p)
|
||||||
ts1b=$(printf "%04x" $ts1p)
|
ts1b=$(printf "%04x" $ts1p)
|
||||||
ts1="x${ts0b}${ts1a}x0000000000000000"
|
ts1="x${ts0b}${ts1a}x0000000000000000"
|
||||||
da="$(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts UDP4-DATAGRAM:$ts0a:$ts1p,bind=:$ts0p,reuseaddr PIPE"
|
CMD0="$SOCAT $opts UDP4-DATAGRAM:$ts0a:$ts1p,bind=:$ts0p,reuseaddr PIPE"
|
||||||
CMD1="$SOCAT $opts - SOCKET-DATAGRAM:2:$SOCK_DGRAM:17:$ts1,bind=x${ts1b}x00000000x0000000000000000"
|
CMD1="$SOCAT $opts - SOCKET-DATAGRAM:2:$SOCK_DGRAM:17:$ts1,bind=x${ts1b}x00000000x0000000000000000"
|
||||||
printf "test $F_n $TEST... " $N
|
printf "test $F_n $TEST... " $N
|
||||||
|
@ -8833,7 +8928,7 @@ tp="$td/test$N.pty"
|
||||||
tf="$td/test$N.stdout"
|
tf="$td/test$N.stdout"
|
||||||
te="$td/test$N.stderr"
|
te="$td/test$N.stderr"
|
||||||
tdiff="$td/test$N.diff"
|
tdiff="$td/test$N.diff"
|
||||||
da="$(date)"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts PTY,LINK=$tp pipe"
|
CMD0="$SOCAT $opts PTY,LINK=$tp pipe"
|
||||||
CMD1="$SOCAT $opts - file:$tp,ioctl-void=$TIOCEXCL,raw,echo=0"
|
CMD1="$SOCAT $opts - file:$tp,ioctl-void=$TIOCEXCL,raw,echo=0"
|
||||||
CMD2="$SOCAT $opts - file:$tp,raw,echo=0"
|
CMD2="$SOCAT $opts - file:$tp,raw,echo=0"
|
||||||
|
@ -8896,7 +8991,7 @@ tp="$PORT"
|
||||||
tf="$td/test$N.stdout"
|
tf="$td/test$N.stdout"
|
||||||
te="$td/test$N.stderr"
|
te="$td/test$N.stderr"
|
||||||
tdiff="$td/test$N.diff"
|
tdiff="$td/test$N.diff"
|
||||||
da="$(date)"
|
da="test$N $(date) $RANDOM"
|
||||||
CMD0="$SOCAT $opts TCP4-L:$tp,setsockopt-int=$SOL_SOCKET:$SO_REUSEADDR:1 PIPE"
|
CMD0="$SOCAT $opts TCP4-L:$tp,setsockopt-int=$SOL_SOCKET:$SO_REUSEADDR:1 PIPE"
|
||||||
CMD1="$SOCAT $opts - TCP:localhost:$tp"
|
CMD1="$SOCAT $opts - TCP:localhost:$tp"
|
||||||
CMD2="$CMD0"
|
CMD2="$CMD0"
|
||||||
|
|
Loading…
Reference in a new issue