libvirt/tests
Matthias Bolte 9523b3c320 network: Fix dnsmasq hostsfile creation logic and related tests
networkSaveDnsmasqHostsfile was added in 8fa9c22142 (Apr 2010).
It has a force flag. If the dnsmasq hostsfile already exists force
needs to be true to overwrite it. networkBuildDnsmasqArgv sets force
to false, networkDefine sets it to true. This results in the
hostsfile being written only in networkDefine in the common case.
If no error occurred networkSaveDnsmasqHostsfile returns true and
networkBuildDnsmasqArgv adds the --dhcp-hostsfile to the dnsmasq
command line.

networkSaveDnsmasqHostsfile was changed in 89ae9849f7 (24 Jun 2011)
to return a new dnsmasqContext instead of reusing one. This change broke
the logic of the force flag as now networkSaveDnsmasqHostsfile returns
NULL on error, but the early return -- if force was not set and the
hostsfile exists -- returns 0. This turned the early return in an error
case and networkBuildDnsmasqArgv didn't add the --dhcp-hostsfile option
anymore if the hostsfile already exists. It did because networkDefine
created the hostsfile already.

Then 9d4e2845d4 fixed the return 0 case in networkSaveDnsmasqHostsfile
but didn't apply the force option correctly to the new addnhosts file.
Now force doesn't control an early return anymore, but influences the
handling of the hostsfile context creation and dnsmasqSave is always
called now. This commit also added test cases that reveal several
problems. First, the tests now calls functions that try to write the
dnsmasq config files to disk. If someone runs this tests as root this
might overwrite actively used dnsmasq config files, this is a no-go. Also
the tests depend on configure --localstatedir, this needs to be fixed as
well, because it makes the tests fail when localstatedir is different
from /var.

This patch does several things to fix this:

1) Move dnsmasqContext creation and saving out of networkBuildDnsmasqArgv
to the caller to separate the command line generation from the config
file writing. This makes the command line generation testable without the
risk of interfering with system files, because the tests just don't call
dnsmasqSave.

2) This refactoring of networkSaveDnsmasqHostsfile makes the force flag
useless as the saving happens somewhere else now. This fixes the wrong
usage of the force flag in combination with then newly added addnhosts
file by removing the force flag.

3) Adapt the wrong test cases to the correct behavior, by adding the
missing --dhcp-hostsfile option. Both affected tests contain DHCP host
elements but missed the necessary --dhcp-hostsfile option.

4) Rename networkSaveDnsmasqHostsfile to networkBuildDnsmasqHostsfile,
because it doesn't save the dnsmasqContext anymore.

5) Move all directory creations in dnsmasq context handling code from
the *New functions to dnsmasqSave to avoid directory creations in system
paths in the test cases.

6) Now that networkBuildDnsmasqArgv doesn't create the dnsmasqContext
anymore the test case can create one with the localstatedir that is
expected by the tests instead of the configure --localstatedir given one.
2011-06-29 01:59:34 +02:00
..
capabilityschemadata Add a more featureful qemu capabilities test data 2009-09-10 12:25:42 +01:00
commanddata maint: improve tests distribution 2010-12-17 11:57:11 -07:00
confdata maint: improve tests distribution 2010-12-17 11:57:11 -07:00
cputestdata tests: Add unit tests for internal CPU APIs 2010-12-01 14:12:54 +01:00
domainschemadata schema: Move timer element inside clock 2010-11-09 15:35:43 +01:00
domainsnapshotxml2xmlin Domain snapshot RNG and tests. 2010-05-20 13:50:03 -04:00
domainsnapshotxml2xmlout Domain snapshot RNG and tests. 2010-05-20 13:50:03 -04:00
interfaceschemadata Update interface.rng and xml test files to match netcf 0.1.5 2010-01-19 21:13:03 +01:00
networkxml2argvdata network: Fix dnsmasq hostsfile creation logic and related tests 2011-06-29 01:59:34 +02:00
networkxml2xmlin Network: Add support for DNS hosts definition to the network XML 2011-06-24 16:15:36 -04:00
networkxml2xmlout Network: Add support for DNS hosts definition to the network XML 2011-06-24 16:15:36 -04:00
nodedevschemadata nodedev: Add removable storage 'media_label' prop 2009-12-14 14:58:23 +01:00
nodeinfodata Get thread and socket information in virsh nodeinfo. 2010-03-08 09:26:04 -05:00
nwfilterxml2xmlin nwfilter: enable filtering of gratuitous ARP packets 2011-05-23 19:41:18 -04:00
nwfilterxml2xmlout nwfilter: enable filtering of gratuitous ARP packets 2011-05-23 19:41:18 -04:00
qemuhelpdata Add txmode attribute to interface XML for virtio backend 2011-02-17 11:07:58 -05:00
qemuxml2argvdata Support reboots with the QEMU driver 2011-06-24 12:13:47 +01:00
qemuxml2xmloutdata Introduce virDomainChrDefNew() 2011-04-14 10:29:39 -06:00
sexpr2xmldata xen: parse and generate hpet item in sxpr 2011-05-10 16:16:55 -06:00
storagepoolxml2xmlin storage: add support for Vendor and Model in XML 2010-08-19 15:58:43 -06:00
storagepoolxml2xmlout storage: add support for Vendor and Model in XML 2010-08-19 15:58:43 -06:00
storagevolxml2xmlin tests: Add storage volume XML 2 XML tests. 2009-10-16 10:52:27 -04:00
storagevolxml2xmlout tests: Add storage volume XML 2 XML tests. 2009-10-16 10:52:27 -04:00
vmx2xmldata esx: Fix regression in absolute file name handling 2011-05-26 23:32:44 +02:00
xencapsdata maint: improve tests distribution 2010-12-17 11:57:11 -07:00
xmconfigdata Fix order of disks and controllers 2011-06-01 19:11:58 +02:00
xml2sexprdata xen: parse and generate hpet item in sxpr 2011-05-10 16:16:55 -06:00
xml2vmxdata esx: Fix regression in absolute file name handling 2011-05-26 23:32:44 +02:00
.gitignore Introduce a generic object for using network sockets 2011-06-24 11:48:18 +01:00
.valgrind.supp tests: suppress more valgrind situations 2011-05-03 08:03:39 -06:00
capabilityschematest Make test suite output less verbose 2010-01-15 16:28:05 +00:00
commandhelper.c build: fix getcwd portability problems 2011-04-29 12:08:26 -06:00
commandtest.c tests: avoid crash when run under gcov 2011-05-11 09:58:35 -06:00
conftest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
cpuset tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
cputest.c maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
daemon-conf tests: fix daemon-conf testing failure 2010-11-03 11:43:11 +01:00
define-dev-segfault domain conf: Track <console> target type 2010-07-28 16:47:59 -04:00
domainschematest tests: Test qemuxml2xml when expected xml changes 2010-07-28 16:47:56 -04:00
domainsnapshotschematest Domain snapshot RNG and tests. 2010-05-20 13:50:03 -04:00
esxutilstest.c time_t is not a long on FreeBSD, switch internal type to long long 2011-05-25 18:47:33 +02:00
eventtest.c tests: simplify common setup 2011-04-29 10:21:20 -06:00
hashdata.h tests: More unit tests for internal hash APIs 2011-04-27 15:32:30 +02:00
hashtest.c hash: fix memory leak regression 2011-04-29 14:26:40 -06:00
int-overflow tests: don't alter state in $HOME 2011-03-28 09:55:46 -06:00
interfaceschematest Make test suite output less verbose 2010-01-15 16:28:05 +00:00
interfacexml2xmltest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
libvirtd-fail Fix up "make check" 2009-10-07 12:18:13 +02:00
libvirtd-pool Fix up "make check" 2009-10-07 12:18:13 +02:00
Makefile.am Network: Add regression tests for the command-line arguments 2011-06-24 16:15:27 -04:00
networkschematest Make test suite output less verbose 2010-01-15 16:28:05 +00:00
networkxml2argvtest.c network: Fix dnsmasq hostsfile creation logic and related tests 2011-06-29 01:59:34 +02:00
networkxml2xmltest.c Network: Add support for DNS hosts definition to the network XML 2011-06-24 16:15:36 -04:00
nodedevschematest Make test suite output less verbose 2010-01-15 16:28:05 +00:00
nodedevxml2xmltest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
nodeinfotest.c Skip nodeinfo test on non intel architectures 2011-06-14 22:32:51 +02:00
nwfilterschematest nwfilter: Add filter schema for nwfilter XML, extend domain XML schema 2010-04-06 11:09:46 -04:00
nwfilterxml2xmltest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
object-locking.ml maint: typo fixes 2011-06-24 08:01:10 -06:00
oomtrace.pl maint: mark more perl scripts executable 2011-05-16 10:12:21 -06:00
openvzutilstest.c openvz: Add simple test for openvzReadNetworkConf 2011-06-01 11:58:15 +02:00
openvzutilstest.conf openvz: Add simple test for openvzReadNetworkConf 2011-06-01 11:58:15 +02:00
qemuargv2xmltest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
qemuhelptest.c qemu: domain I/O asynchronous handling 2011-06-22 09:26:24 +02:00
qemuxml2argvtest.c Support reboots with the QEMU driver 2011-06-24 12:13:47 +01:00
qemuxml2xmltest.c Support leases in guest XML and lock manager 2011-06-02 10:54:00 +01:00
qparamtest.c tests: simplify common setup 2011-04-29 10:21:20 -06:00
read-bufsiz build: use portable sed expressions 2010-09-14 08:42:10 -06:00
read-non-seekable tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
reconnect.c avoid calling exit with a constant; use EXIT_* instead 2009-12-15 17:46:04 +01:00
schematestutils.sh schematestutils.sh: improve shell portability: avoid "echo -e" 2010-04-14 17:34:12 +02:00
seclabeltest.c Refactor the security drivers to simplify usage 2011-01-10 18:10:52 +00:00
sexpr2xmltest.c xen: parse and generate hpet item in sxpr 2011-05-10 16:16:55 -06:00
sockettest.c tests: simplify common setup 2011-04-29 10:21:20 -06:00
ssh.c Introduce a generic object for using network sockets 2011-06-24 11:48:18 +01:00
start tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
statstest.c tests: simplify common setup 2011-04-29 10:21:20 -06:00
storagepoolschematest Make test suite output less verbose 2010-01-15 16:28:05 +00:00
storagepoolxml2xmltest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
storagevolschematest Make test suite output less verbose 2010-01-15 16:28:05 +00:00
storagevolxml2xmltest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
test_conf.sh Make test suite output less verbose 2010-01-15 16:28:05 +00:00
test-lib.sh build: don't use "test cond1 -o cond2": it's not portable 2010-03-25 09:28:24 +01:00
testutils.c maint: typo fixes 2011-06-24 08:01:10 -06:00
testutils.h Provide a simple object for encoding/decoding RPC messages 2011-06-24 11:48:14 +01:00
testutilsqemu.c tests: Fake host capabilities properly 2011-02-15 22:51:37 +01:00
testutilsqemu.h remove all trailing blank lines 2009-07-16 15:06:42 +02:00
testutilsxen.c Fix crashes in Xen capabilities code 2009-07-27 16:45:01 +01:00
testutilsxen.h remove all trailing blank lines 2009-07-16 15:06:42 +02:00
undefine tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
vcpupin tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
virbuftest.c maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
virnetmessagetest.c Provide a simple object for encoding/decoding RPC messages 2011-06-24 11:48:14 +01:00
virnetsockettest.c tests: Improve IPv6 detection for virNetSocket tests 2011-06-24 18:46:06 +02:00
virsh-all tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
virsh-optparse tests: test recent virsh option parsing changes 2011-04-15 16:19:22 -06:00
virsh-schedinfo tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
virsh-synopsis tests: use GPLv2+, not GPLv3 2010-05-12 08:41:10 +02:00
virshtest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
virt-aa-helper-test virt-aa-helper-test cleanups 2010-09-30 15:01:36 -06:00
vmx2xmltest.c esx: Fix regression in absolute file name handling 2011-05-26 23:32:44 +02:00
xencapstest.c tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
xmconfigtest.c xen: parse and generate hpet item in sxpr 2011-05-10 16:16:55 -06:00
xml2sexprtest.c xen: parse and generate hpet item in sxpr 2011-05-10 16:16:55 -06:00
xml2vmxtest.c esx: Fix regression in absolute file name handling 2011-05-26 23:32:44 +02:00