On Thu, Dec 22, 2016 at 08:43:33PM +0100, Andrea Bolognani wrote:
Since commit 478ddedc12b7 the name of the loopback interface
in the generated dnsmasq configuration is OS-dependent.
However, the test suite has not been updated to cope with the
change, causing it to fail on FreeBSD and other non-Linux
operating systems.
Modify the networkxml2conf test case to read the expected
output from different files based on the OS we're building on.
---
diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c
index a80d3b2..617c7ea 100644
--- a/tests/networkxml2conftest.c
+++ b/tests/networkxml2conftest.c
@@ -71,11 +71,16 @@ testCompareXMLToConfHelper(const void *data)
const testInfo *info = data;
char *inxml = NULL;
char *outxml = NULL;
+#ifdef __linux__
+ const char *os = "linux";
+#else
+ const char *os = "other";
+#endif
So this part ^^ is fine, let's assume it's the "how is the loopback
interface named" function. But instead it could be: loopname = "lo" and
"lo0" respectively.
if (virAsprintf(&inxml,
"%s/networkxml2confdata/%s.xml",
abs_srcdir, info->name) < 0 ||
- virAsprintf(&outxml, "%s/networkxml2confdata/%s.conf",
- abs_srcdir, info->name) < 0) {
+ virAsprintf(&outxml, "%s/networkxml2confdata/%s-%s.conf",
+ abs_srcdir, info->name, os) < 0) {
LOL, "outxml" is not XML at all.
But anyway, I'm sorry to say this, but honestly? Gross. I'd rather
change except-interface=lo to except-interface=LOOPBACK_NAME and then
strstr() and memmove() the outxml. Just my $.02, though.
Martin