[libvirt] [PATCH 2/4] tests: Fix qemumemlocktest on FreeBSD

Andrea Bolognani abologna at redhat.com
Mon Apr 30 09:47:33 UTC 2018


On Fri, 2018-04-27 at 16:35 +0100, Daniel P. Berrangé wrote:
> On Fri, Apr 27, 2018 at 05:21:21PM +0200, Andrea Bolognani wrote:
> > When hostdevs are involved, libvirt needs to poke into sysfs to
> > collect some information about them; since that pseudo-filesystem
> > doesn't exist on platforms other than Linux, the corresponding
> > tests would fail and need to be compiled out.
> 
> Our test suite isn't supposed to touch /sysfs from the real
> host at all. Sounds like we either need to mock out the
> function that's doing that, or provide some fake sysfs data
> in a tests/ subdirectory to run against with a mock'd open()
> call. That would make it work even on non-Linux I hope.

Sorry, I should have provided some more context, but I was in a
bit of a hurry on Friday when I sent this.

We are already mocking (parts of) sysfs through virpcimock, but
the contents of that file are compiled out on non-Linux; after
removing the #ifdefs, it's fairly easy to solve most of the build
issues on FreeBSD (draft patch attached), but there's one I
couldn't quite get rid of.

Mocking canonicalize_file_name() causes a linking error:

  ../gnulib/lib/.libs/libgnu.a(canonicalize-lgpl.o): In function `canonicalize_file_name':
  .../libvirt/gnulib/lib/canonicalize-lgpl.c:417: multiple definition of `canonicalize_file_name'
  .libs/virpcimock.o:.../libvirt/tests/virpcimock.c:983: first defined here

This is not a problem on Linux, where canonicalize_file_name() is
provided by libc, but FreeBSD is using the gnulib implementation
instead, leading to the issue above.

Can you think of a way to make linking of virpcimock work despite
the above? That should get us to the point where at least
qemumemlocktest and qemuxml2xmltest are working; qemuxml2argvtest
will probably need more mocking because of NUMA information.

-- 
Andrea Bolognani / Red Hat / Virtualization
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-virpcimock.patch
Type: text/x-patch
Size: 2864 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180430/26c7fef9/attachment-0001.bin>


More information about the libvir-list mailing list