
On Tue, May 15, 2018 at 01:45:33PM +0200, Michal Privoznik wrote:
In a lot of our mocks (if not all of them) we use our internal APIs (e.g. VIR_ALLOC). So far, we're relying on test binary that links with the mock to drag in libvirt.so. Well, this works only partially. Firstly, whatever binary we execute from tests will fail (e.g. as Martin reported on the list ./qemucapsprobe fails to execute qemu). Secondly, if there's a program that tries to validate linking (like valgrind is doing) it fails because of unresolved symbols.
Hmm, that first issue suggests we are not unsetting LD_PRELOAD before executing programs. Indeed looking at git only the qemuargv2xmltest and qemuxml2argvtest.c are unsetting LD_PRELOAD. Seems we should make virTestMain unset LD_PRELOAD globally in some way. NB, I'm not objecting to this patch, just saying we shoudl fix the LD_PRELOAD regardless.
Because of that we have to link our mocks with libvirt.so.
It feels rather recursive to me but if it works...
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am index 621480dd0c..ac92190845 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -81,7 +81,8 @@ LDADDS = \ ../src/libvirt.la
MOCKLIBS_LIBS = \ - $(GNULIB_LIBS) + $(GNULIB_LIBS) \ + ../src/libvirt.la
EXTRA_DIST = \ .valgrind.supp \
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> 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 :|