2011/6/27 Eric Blake <eblake@xxxxxxxxxx>: > On 06/25/2011 10:10 AM, Matthias Bolte wrote: >> 2011/6/25 Eric Blake <eblake@xxxxxxxxxx>: >>> On 06/25/2011 06:41 AM, Matthias Bolte wrote: >>>> networkxml2argvtest indirectly calls networkDnsmasqLeaseFileName >>>> that depends on configure --localstatedir. Therefore, the .argv >>>> files used in the test have to be created with this localstatedir. >>>> >>>> Move the .argv to .argv.in files with a @localstatedir@ placeholder. >>> >>> Will this work in VPATH builds? Previously, we have done hacks where >>> the test directory can provide an override string; if the override is >>> NULL (the default, for use in libvirtd), then use @localstatedir@, but >>> if the override is provided (from the test case), then use that instead. >> >> Where are we doing that in libvirtd, I can't find something like that. >> >> Also how would you do that in general? Environment variable? >> LD_PRELOAD to replace networkDnsmasqLeaseFileName for testing >> (assuming that LD_PRELOAD works in this case)? > > Function override. See for example how openvz_conf.h declares > openvzLocateConfFile, which is normally set to > openvzLocateConfFileDefault and uses configure arguments to determine > the string to create, but within tests/openvzutilstest, is overridden to > a test-only variant that hard-codes the location to instead be relative > to the test directory. > > That is, the networkDnsmasqLeaseFileName function can easily be reworked > into a function pointer, with the current definition being installed by > default, but with an alternate function pointer installed during the > test that avoids any reference to configure arguments. Oh, true. I did the openvzLocateConfFileDefault approach :) I'll fix it that way. -- Matthias Bolte http://photron.blogspot.com -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list