On Fri, May 31, 2024 at 01:04:59PM -0500, Eric Blake wrote:
> Prevent regressions when using NBD with TLS in the presence of
> iothreads, adding coverage the fix to qio channels made in the
> previous patch.
>
> The shell function pick_unused_port() was copied from
> nbdkit.git/tests/functions.sh.in, where it had all authors from Red
> Hat, agreeing to the resulting relicensing from 2-clause BSD to GPLv2.
>
> CC: [email protected]
> CC: "Richard W.M. Jones" <[email protected]>
> Signed-off-by: Eric Blake <[email protected]>
> ---
> tests/qemu-iotests/tests/nbd-tls-iothread | 168 ++++++++++++++++++
> tests/qemu-iotests/tests/nbd-tls-iothread.out | 54 ++++++
> 2 files changed, 222 insertions(+)
> create mode 100755 tests/qemu-iotests/tests/nbd-tls-iothread
> create mode 100644 tests/qemu-iotests/tests/nbd-tls-iothread.out
> +# pick_unused_port
> +#
> +# Picks and returns an "unused" port, setting the global variable
> +# $port.
> +#
> +# This is inherently racy, but we need it because qemu does not currently
> +# permit NBD+TLS over a Unix domain socket
> +pick_unused_port ()
> +{
> + if ! (ss --version) >/dev/null 2>&1; then
> + _notrun "ss utility required, skipped this test"
> + fi
> +
> + # Start at a random port to make it less likely that two parallel
> + # tests will conflict.
> + port=$(( 50000 + (RANDOM%15000) ))
> + while ss -ltn | grep -sqE ":$port\b"; do
> + ((port++))
> + if [ $port -eq 65000 ]; then port=50000; fi
> + done
> + echo picked unused port
> +}
In retrospect I'd probably have suggested putting this into
common.qemu as its conceptually independant of this test.
That's not a blocker though so
Reviewed-by: Daniel P. Berrangé <[email protected]>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|