return 0;
}
+typedef enum {
+ FLAG_EXPECT_WARNING = 1 << 0,
+} virQemuXML2ArgvTestFlags;
+
static int testCompareXMLToArgvFiles(const char *xml,
const char *cmdfile,
- bool expect_warning)
+ virQemuXML2ArgvTestFlags flags)
{
char *expectxml = NULL;
char *actualxml = NULL;
char *cmd = NULL;
+ char *log = NULL;
int ret = -1;
virDomainDefPtr vmdef = NULL;
goto fail;
if (!virtTestOOMActive()) {
- char *log;
if ((log = virtTestLogContentAndReset()) == NULL)
goto fail;
- if ((*log != '\0') != expect_warning) {
- VIR_FREE(log);
- goto fail;
+ if (flags & FLAG_EXPECT_WARNING) {
+ if (*log) {
+ if (virTestGetDebug() > 1)
+ fprintf(stderr,
+ "Got expected warning from "
+ "qemuParseCommandLineString:\n%s",
+ log);
+ } else {
+ if (virTestGetDebug())
+ fprintf(stderr, "qemuParseCommandLineString "
+ "should have logged a warning\n");
+ goto fail;
+ }
+ } else { /* didn't expect a warning */
+ if (*log) {
+ if (virTestGetDebug())
+ fprintf(stderr,
+ "Got unexpected warning from "
+ "qemuParseCommandLineString:\n%s",
+ log);
+ goto fail;
+ }
}
- VIR_FREE(log);
}
if (!virDomainDefCheckABIStability(vmdef, vmdef)) {
VIR_FREE(expectxml);
VIR_FREE(actualxml);
VIR_FREE(cmd);
+ VIR_FREE(log);
virDomainDefFree(vmdef);
return ret;
}
struct testInfo {
const char *name;
- unsigned long long extraFlags;
+ unsigned int flags;
};
static int
abs_srcdir, info->name) < 0)
goto cleanup;
- result = testCompareXMLToArgvFiles(xml, args, !!info->extraFlags);
+ result = testCompareXMLToArgvFiles(xml, args, info->flags);
cleanup:
VIR_FREE(xml);
if (!(driver.xmlopt = virQEMUDriverCreateXMLConf(&driver)))
return EXIT_FAILURE;
-# define DO_TEST_FULL(name, extraFlags) \
+# define DO_TEST_FULL(name, flags) \
do { \
- const struct testInfo info = { name, extraFlags }; \
+ const struct testInfo info = { name, (flags) }; \
if (virtTestRun("QEMU ARGV-2-XML " name, \
testCompareXMLToArgvHelper, &info) < 0) \
ret = -1; \
DO_TEST("restore-v2");
DO_TEST("migrate");
- DO_TEST_FULL("qemu-ns-no-env", 1);
+ DO_TEST_FULL("qemu-ns-no-env", FLAG_EXPECT_WARNING);
virObjectUnref(driver.config);
virObjectUnref(driver.caps);