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(a)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(a)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 :|