[libvirt] [PATCH] tests: Handle networkxml2argvtest being configure --localstatedir dependant

Matthias Bolte matthias.bolte at googlemail.com
Mon Jun 27 14:23:02 UTC 2011


2011/6/27 Eric Blake <eblake at redhat.com>:
> On 06/25/2011 10:10 AM, Matthias Bolte wrote:
>> 2011/6/25 Eric Blake <eblake at redhat.com>:
>>> 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




More information about the libvir-list mailing list