mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-02-06 11:09:13 +00:00
Use nc6 in MSP tests instead of nc
On OS-X (BSD), nc6 appears to be the only available variant of netcat that matches the Linux version. Introduces a guard function to catch invocations of nc6 when setup_netcat6 has not been called in the fixture. Introduce guard functions to prevent invocations of nc and netcat.
This commit is contained in:
parent
2da3f12cfa
commit
3e4470bf4a
34
testdefs.sh
34
testdefs.sh
@ -903,7 +903,39 @@ setup_curl() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fail "curl(1) version $2 is not adequate (expecting $minversion or higher)"
|
fail "curl(1) version $2 is not adequate (expecting $minversion or higher)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup function:
|
||||||
|
# - ensure that the netcat6 nc6(1) utility is available
|
||||||
|
setup_netcat6() {
|
||||||
|
NETCAT6=$(type -P nc6) || error "nc6(1) command is not present"
|
||||||
|
local minversion="${1:-1.0}"
|
||||||
|
local ver="$("$NETCAT6" --version | tr '\n' ' ')"
|
||||||
|
case "$ver" in
|
||||||
|
nc6\ version\ *)
|
||||||
|
set -- $ver
|
||||||
|
tfw_cmp_version "$3" "$minversion"
|
||||||
|
case $? in
|
||||||
|
0|2)
|
||||||
|
export NETCAT6
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
error "$NETCAT6 version $3 is not adequate (expecting $minversion or higher)"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fail "cannot parse output of curl --version: $ver"
|
error "cannot parse output of $NETCAT6 --version: $ver"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Guard functions.
|
||||||
|
NETCAT6=
|
||||||
|
nc6() {
|
||||||
|
[ -x "$NETCAT6" ] || error "missing call to setup_netcat6 in the fixture"
|
||||||
|
"$NETCAT6" "$@"
|
||||||
|
}
|
||||||
|
nc() {
|
||||||
|
error "do not use nc; instead use nc6(1) after calling setup_netcat6 in the fixture"
|
||||||
|
}
|
||||||
|
netcat() {
|
||||||
|
error "do not use netcat; instead use nc6(1) after calling setup_netcat6 in the fixture"
|
||||||
}
|
}
|
||||||
|
13
tests/msp
13
tests/msp
@ -181,6 +181,7 @@ test_keep_alive() {
|
|||||||
doc_forward="Forward TCP connections to a remote server"
|
doc_forward="Forward TCP connections to a remote server"
|
||||||
setup_forward() {
|
setup_forward() {
|
||||||
setup_common
|
setup_common
|
||||||
|
setup_netcat6
|
||||||
start_servald_instances +A +B
|
start_servald_instances +A +B
|
||||||
}
|
}
|
||||||
client_forward() {
|
client_forward() {
|
||||||
@ -194,7 +195,7 @@ test_forward() {
|
|||||||
set_instance +B
|
set_instance +B
|
||||||
fork %connect client_forward 2048 $SIDA
|
fork %connect client_forward 2048 $SIDA
|
||||||
sleep 1
|
sleep 1
|
||||||
executeOk nc -q 30 -v 127.0.0.1 2048 < <(echo "Hello from the client")
|
executeOk nc6 -q 30 -v 127.0.0.1 2048 < <(echo "Hello from the client")
|
||||||
assertStdoutGrep --matches=1 "^Hello from the server$"
|
assertStdoutGrep --matches=1 "^Hello from the server$"
|
||||||
fork_wait %listen %connect
|
fork_wait %listen %connect
|
||||||
}
|
}
|
||||||
@ -202,6 +203,7 @@ test_forward() {
|
|||||||
doc_tcp_tunnel="Tunnel a tcp connection"
|
doc_tcp_tunnel="Tunnel a tcp connection"
|
||||||
setup_tcp_tunnel() {
|
setup_tcp_tunnel() {
|
||||||
setup_common
|
setup_common
|
||||||
|
setup_netcat6
|
||||||
start_servald_instances +A +B
|
start_servald_instances +A +B
|
||||||
}
|
}
|
||||||
server_forward() {
|
server_forward() {
|
||||||
@ -210,7 +212,7 @@ server_forward() {
|
|||||||
tfw_cat --stderr
|
tfw_cat --stderr
|
||||||
}
|
}
|
||||||
nc_listen() {
|
nc_listen() {
|
||||||
execute nc -q -1 -v -l -p $1 < <(echo "Hello from the server")
|
execute nc6 -q -1 -v -l -p $1 < <(echo "Hello from the server")
|
||||||
tfw_cat --stdout --stderr
|
tfw_cat --stdout --stderr
|
||||||
}
|
}
|
||||||
test_tcp_tunnel() {
|
test_tcp_tunnel() {
|
||||||
@ -220,7 +222,7 @@ test_tcp_tunnel() {
|
|||||||
set_instance +B
|
set_instance +B
|
||||||
fork %client client_forward 6001 $SIDA
|
fork %client client_forward 6001 $SIDA
|
||||||
sleep 1
|
sleep 1
|
||||||
executeOk nc -q 10 -v 127.0.0.1 6001 < <(echo "Hello from the client")
|
executeOk nc6 -q 10 -v 127.0.0.1 6001 < <(echo "Hello from the client")
|
||||||
tfw_cat --stdout --stderr
|
tfw_cat --stdout --stderr
|
||||||
assertStdoutGrep --matches=1 "^Hello from the server$"
|
assertStdoutGrep --matches=1 "^Hello from the server$"
|
||||||
fork_wait %listen %server %client
|
fork_wait %listen %server %client
|
||||||
@ -285,6 +287,7 @@ test_refused(){
|
|||||||
doc_terminate="Terminate a connection mid stream"
|
doc_terminate="Terminate a connection mid stream"
|
||||||
setup_terminate() {
|
setup_terminate() {
|
||||||
setup_common
|
setup_common
|
||||||
|
setup_netcat6
|
||||||
start_servald_instances +A +B
|
start_servald_instances +A +B
|
||||||
}
|
}
|
||||||
client_terminate() {
|
client_terminate() {
|
||||||
@ -303,8 +306,8 @@ test_terminate() {
|
|||||||
set_instance +B
|
set_instance +B
|
||||||
fork %mspconnect client_terminate
|
fork %mspconnect client_terminate
|
||||||
sleep 1
|
sleep 1
|
||||||
# todo capture nc output nicely, while still being able to terminate it
|
# todo capture nc6 output nicely, while still being able to terminate it
|
||||||
fork %ncconnect nc -q 0 -v 127.0.0.1 3001
|
fork %ncconnect nc6 -q 0 -v 127.0.0.1 3001
|
||||||
fork_terminate %ncconnect
|
fork_terminate %ncconnect
|
||||||
fork_wait %msplisten %mspconnect %ncconnect
|
fork_wait %msplisten %mspconnect %ncconnect
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user