On Wed, May 02, 2018 at 05:32:25PM +0100, Daniel P. Berrangé wrote: > On Mon, Apr 30, 2018 at 06:52:58PM +0200, Andrea Bolognani wrote: > > The latter is a glibc extension that's not available on other > > operating systems, notably FreeBSD. > > > > So far we have worked around the issue through gnulib, but that > > makes it difficult to use mocking in our test suite, so just > > drop it in favor of the portable alternative. > > Sigh, unfortunately realpath() has its own portability problems > in that passing NULL as second arg was a glibc invention, which > is why we switched from realpath() to canonicalize_file_name() > in the first place ! > > So I wonder if this actually works on OS-X, Mingw and FreeBSD, > or whether you didn't see the bug because it is mocked in the > tests ? Hmm, another idea - if the problem is that we can't easily mock canonicalize_file_name() why don't we just provide a trivial wrapper. eg virFileCanonicalize() which does nothing except call canonicalize_file_name(). We can then just mock the virFileCanonicalize() method instead. This would nicely avoid the pain with dealing with versioned symbols for realpath too. 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list