[PATCH v3 5/7] networkxml2conftest: Use dnsmasqCapsNewFromBinary() to construct caps
Michal Prívozník
mprivozn at redhat.com
Mon Jan 17 12:11:29 UTC 2022
On 1/14/22 17:49, Andrea Bolognani wrote:
> On Wed, Jan 12, 2022 at 09:47:56AM +0100, Michal Privoznik wrote:
>> DISCLAIMER: dnsmasq capabilities are empty as of v8.0.0-rc1~145.
>>
>> In a real environment the dnsmasq capabilities are constructed
>> using dnsmasqCapsNewFromBinary(). We also have
>> dnsmasqCapsNewFromBuffer() to bypass checks that real code is
>> doing and just get capabilities object. The latter is used from
>> test suite.
>>
>> However, with a little bit of mocking we can test the real life
>> code. All that's needed is to simulate dnsmasq's output for
>> --version and --help and mock a stat() that's done in
>> dnsmasqCapsRefreshInternal().
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>> tests/networkmock.c | 16 ++++++++++++++++
>> tests/networkxml2conftest.c | 38 ++++++++++++++++++++++++++++++++++++-
>> 2 files changed, 53 insertions(+), 1 deletion(-)
>
> This all works, but I wonder if we couldn't just create a trivial
> shell script that behaves minimally the way we expect dnsmasq to, and
> change our virFindFileInPath() mock so that it returns the absolute
> path to it? That way we wouldn't need to implement any additional
> mocking and the code would end up being much simpler. Diff below.
I thought that we should avoid shell for new contributions:
https://libvirt.org/programming-languages.html
>
> Also note that there is a pre-existing issue with the test, in that
> we don't check that the value returned by dnsmasqCapsNewFrom*() is
> non-NULL, and as a result if you change the version number in the
> test string to something like 0.1 the test will still pass where it
> definitely shouldn't.
Okay, let me address that in v3.
Michal
More information about the libvir-list
mailing list