mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
tests: exercise NBD server in TLS mode
Add tests that validate it is possible to connect to an NBD server running TLS mode. Also test mis-matched TLS vs non-TLS connections correctly fail. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20181116155325.22428-7-berrange@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Tested-by: Eric Blake <eblake@redhat.com> [eblake: rebase to iotests shell cleanups, use ss instead of socat for port probing, sanitize port number in expected output] Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
a46b684106
commit
afcd1c2f2d
4 changed files with 178 additions and 0 deletions
|
@ -20,6 +20,7 @@
|
|||
#
|
||||
|
||||
nbd_unix_socket="${TEST_DIR}/qemu-nbd.sock"
|
||||
nbd_tcp_addr="127.0.0.1"
|
||||
nbd_pid_file="${TEST_DIR}/qemu-nbd.pid"
|
||||
|
||||
function nbd_server_stop()
|
||||
|
@ -62,3 +63,47 @@ function nbd_server_start_unix_socket()
|
|||
$QEMU_NBD -v -t -k "$nbd_unix_socket" "$@" &
|
||||
nbd_server_wait_for_unix_socket $!
|
||||
}
|
||||
|
||||
function nbd_server_set_tcp_port()
|
||||
{
|
||||
(ss --help) >/dev/null 2>&1 || _notrun "ss utility not found, skipping test"
|
||||
|
||||
for ((port = 10809; port <= 10909; port++))
|
||||
do
|
||||
if ! ss -tln | grep -sqE ":$port\b"; then
|
||||
nbd_tcp_port=$port
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Cannot find free TCP port for nbd in range 10809-10909"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function nbd_server_wait_for_tcp_socket()
|
||||
{
|
||||
pid=$1
|
||||
|
||||
for ((i = 0; i < 300; i++))
|
||||
do
|
||||
if ss -tln | grep -sqE ":$nbd_tcp_port\b"; then
|
||||
return
|
||||
fi
|
||||
kill -s 0 $pid 2>/dev/null
|
||||
if test $? != 0
|
||||
then
|
||||
echo "qemu-nbd unexpectedly quit"
|
||||
exit 1
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
echo "Failed in check of TCP socket created by qemu-nbd"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function nbd_server_start_tcp_socket()
|
||||
{
|
||||
nbd_server_stop
|
||||
$QEMU_NBD -v -t -b $nbd_tcp_addr -p $nbd_tcp_port "$@" &
|
||||
nbd_server_wait_for_tcp_socket $!
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue