xmlDocPtr doc = NULL;
xmlNodePtr old;
xmlNodePtr new = NULL;
- char *tmp;
+ char *tmp = NULL;
int ret = -1;
if (type >= VIR_DOMAIN_METADATA_LAST) {
switch ((virDomainMetadataType) type) {
case VIR_DOMAIN_METADATA_DESCRIPTION:
- if (VIR_STRDUP(tmp, metadata) < 0)
+ if (STRNEQ_NULLABLE(metadata, "") && VIR_STRDUP(tmp, metadata) < 0)
goto cleanup;
VIR_FREE(def->description);
break;
case VIR_DOMAIN_METADATA_TITLE:
- if (VIR_STRDUP(tmp, metadata) < 0)
+ if (STRNEQ_NULLABLE(metadata, "") && VIR_STRDUP(tmp, metadata) < 0)
goto cleanup;
VIR_FREE(def->title);
virDomainPtr dom;
const char *data;
+ const char *expect;
int type;
bool fail;
};
actual = virDomainGetMetadata(test->dom, test->type, NULL, 0);
- if (STRNEQ_NULLABLE(test->data, actual)) {
+ if (STRNEQ_NULLABLE(test->expect, actual)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"expected metadata doesn't match actual: "
"expected:'%s'\ngot: '%s'",
return ret;
}
-#define TEST_TEXT_METADATA(INDEX, TYPE, DATA, FAIL) \
+#define TEST_TEXT_METADATA(INDEX, TYPE, DATA, EXPECT, FAIL) \
do { \
test.type = VIR_DOMAIN_METADATA_ ## TYPE; \
test.data = DATA; \
+ test.expect = EXPECT; \
test.fail = FAIL; \
\
if (virTestRun("text metadata: " #TYPE " " INDEX " ", \
ret = EXIT_FAILURE; \
} while (0)
-#define TEST_TITLE(INDEX, DATA) TEST_TEXT_METADATA(INDEX, TITLE, DATA, false)
-#define TEST_TITLE_FAIL(INDEX, DATA) TEST_TEXT_METADATA(INDEX, TITLE, DATA, true)
-#define TEST_DESCR(INDEX, DATA) TEST_TEXT_METADATA(INDEX, DESCRIPTION, DATA, false)
+#define TEST_TITLE(INDEX, DATA) \
+ TEST_TEXT_METADATA(INDEX, TITLE, DATA, DATA, false)
+#define TEST_TITLE_EXPECT(INDEX, DATA, EXPECT) \
+ TEST_TEXT_METADATA(INDEX, TITLE, DATA, EXPECT, false)
+#define TEST_TITLE_FAIL(INDEX, DATA) \
+ TEST_TEXT_METADATA(INDEX, TITLE, DATA, DATA, true)
+#define TEST_DESCR(INDEX, DATA) \
+ TEST_TEXT_METADATA(INDEX, DESCRIPTION, DATA, DATA, false)
+#define TEST_DESCR_EXPECT(INDEX, DATA, EXPECT) \
+ TEST_TEXT_METADATA(INDEX, DESCRIPTION, DATA, EXPECT, false)
static int
mymain(void)
TEST_TITLE("2", NULL);
TEST_TITLE("3", "blah");
TEST_TITLE_FAIL("4", "qwe\nrt");
- TEST_TITLE("5", "");
+ TEST_TITLE_EXPECT("5", "", NULL);
TEST_TITLE_FAIL("6", "qwert\n");
TEST_TITLE_FAIL("7", "\n");
TEST_DESCR("2", NULL);
TEST_DESCR("3", "qwert");
TEST_DESCR("4", "\n");
- TEST_DESCR("5", "");
+ TEST_DESCR_EXPECT("5", "", NULL);
virDomainFree(test.dom);
virConnectClose(test.conn);