Convert networkDnsmasqLeaseFileName to a replaceable function pointer that allow the testsuite to use a version of that function that is not depending on configure --localstatedir. This fixes 5 of 6 test failures, when configure --localstatedir isn't set to /var. --- The last failure is related to networkBuildDhcpDaemonCommandLine trying to indirectly write dnsmasq config files to disk. This needs a larger rewrite to separate the config file writing out of networkBuildDhcpDaemonCommandLine. src/network/bridge_driver.c | 5 ++++- src/network/bridge_driver.h | 5 +++++ tests/networkxml2argvtest.c | 13 +++++++++++++ 3 files changed, 22 insertions(+), 1 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 1b11132..d009627 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -108,7 +108,7 @@ static void networkReloadIptablesRules(struct network_driver *driver); static struct network_driver *driverState = NULL; static char * -networkDnsmasqLeaseFileName(const char *netname) +networkDnsmasqLeaseFileNameDefault(const char *netname) { char *leasefile; @@ -117,6 +117,9 @@ networkDnsmasqLeaseFileName(const char *netname) return leasefile; } +networkDnsmasqLeaseFileNameFunc networkDnsmasqLeaseFileName = + networkDnsmasqLeaseFileNameDefault; + static char * networkRadvdPidfileBasename(const char *netname) { diff --git a/src/network/bridge_driver.h b/src/network/bridge_driver.h index 8d82b67..a106e3d 100644 --- a/src/network/bridge_driver.h +++ b/src/network/bridge_driver.h @@ -34,4 +34,9 @@ int networkRegister(void); int networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network, virCommandPtr *cmdout, char *pidfile); +typedef char *(*networkDnsmasqLeaseFileNameFunc)(const char *netname); + +/* this allows the testsuite to replace the lease filename resolver function */ +extern networkDnsmasqLeaseFileNameFunc networkDnsmasqLeaseFileName; + #endif /* __VIR_NETWORK__DRIVER_H */ diff --git a/tests/networkxml2argvtest.c b/tests/networkxml2argvtest.c index 16d57a9..62de191 100644 --- a/tests/networkxml2argvtest.c +++ b/tests/networkxml2argvtest.c @@ -85,11 +85,24 @@ cleanup: return result; } +static char * +testDnsmasqLeaseFileName(const char *netname) +{ + char *leasefile; + + virAsprintf(&leasefile, "/var/lib/libvirt/dnsmasq/%s.leases", + netname); + + return leasefile; +} + static int mymain(void) { int ret = 0; + networkDnsmasqLeaseFileName = testDnsmasqLeaseFileName; + #define DO_TEST(name) \ if (virtTestRun("Network XML-2-Argv " name, \ 1, testCompareXMLToArgvHelper, (name)) < 0) \ -- 1.7.0.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list