Laszlo Ersek
2022-Apr-01 11:52 UTC
[Libguestfs] [PATCH nbdkit] tests: Skip vsock tests unless the vsock_loopback module is loaded
On 04/01/22 12:46, Richard W.M. Jones wrote:> It's unfortunate that vsock in Linux can be broken if some but not all > vsock modules needed are loaded. As we are testing loopback > (VMADDR_CID_LOCAL), require that vsock_loopback is loaded. > > Linux is able to autoload the correct module(s) if vsock.ko is _not_ > loaded. We could in theory enhance the test to check this, but that > leaves us with uncertainty about whether the test could work (eg. Is > vsock available as a module in this kernel? Is this even Linux?) > > Reported-by: Ming Xie > Thanks: Stefano Garzarella > Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2069558 > --- > tests/functions.sh.in | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/tests/functions.sh.in b/tests/functions.sh.in > index 6d41f683..7877c84d 100644 > --- a/tests/functions.sh.in > +++ b/tests/functions.sh.in > @@ -240,11 +240,13 @@ requires_non_root () > } > > # Tests that use the vsock interface will fail if vsock is not > -# supported. On Linux you have to load the kernel modules: vsockmon > -# and vsock_loopback. > +# supported. On Linux you have to load the kernel module > +# vsock_loopback. See also > +# https://bugzilla.redhat.com/show_bug.cgi?id=2069558 > requires_vsock_support () > { > - if ! grep -q ^AF_VSOCK /proc/net/protocols; then > + if ! grep -q ^AF_VSOCK /proc/net/protocols || > + ! lsmod | grep ^vsock_loopback; then > echo "$0: test skipped because AF_VSOCK is not supported." > exit 77 > fi >I think we should use "grep -q ^vsock_loopback" (-q option), but other than that: Acked-by: Laszlo Ersek <lersek at redhat.com>
Richard W.M. Jones
2022-Apr-01 12:21 UTC
[Libguestfs] [PATCH nbdkit] tests: Skip vsock tests unless the vsock_loopback module is loaded
On Fri, Apr 01, 2022 at 01:52:13PM +0200, Laszlo Ersek wrote:> On 04/01/22 12:46, Richard W.M. Jones wrote: > > It's unfortunate that vsock in Linux can be broken if some but not all > > vsock modules needed are loaded. As we are testing loopback > > (VMADDR_CID_LOCAL), require that vsock_loopback is loaded. > > > > Linux is able to autoload the correct module(s) if vsock.ko is _not_ > > loaded. We could in theory enhance the test to check this, but that > > leaves us with uncertainty about whether the test could work (eg. Is > > vsock available as a module in this kernel? Is this even Linux?) > > > > Reported-by: Ming Xie > > Thanks: Stefano Garzarella > > Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2069558 > > --- > > tests/functions.sh.in | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/tests/functions.sh.in b/tests/functions.sh.in > > index 6d41f683..7877c84d 100644 > > --- a/tests/functions.sh.in > > +++ b/tests/functions.sh.in > > @@ -240,11 +240,13 @@ requires_non_root () > > } > > > > # Tests that use the vsock interface will fail if vsock is not > > -# supported. On Linux you have to load the kernel modules: vsockmon > > -# and vsock_loopback. > > +# supported. On Linux you have to load the kernel module > > +# vsock_loopback. See also > > +# https://bugzilla.redhat.com/show_bug.cgi?id=2069558 > > requires_vsock_support () > > { > > - if ! grep -q ^AF_VSOCK /proc/net/protocols; then > > + if ! grep -q ^AF_VSOCK /proc/net/protocols || > > + ! lsmod | grep ^vsock_loopback; then > > echo "$0: test skipped because AF_VSOCK is not supported." > > exit 77 > > fi > > > > I think we should use "grep -q ^vsock_loopback" (-q option), but other > than that: > > Acked-by: Laszlo Ersek <lersek at redhat.com>Pushed in commit ac099923, with -q, but I forgot to add the Acked-by line :-( Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org