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: qemu-sta...@nongnu.org > CC: "Richard W.M. Jones" <rjo...@redhat.com> > Signed-off-by: Eric Blake <ebl...@redhat.com> > --- > 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é <berra...@redhat.com> 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 :|