mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-18 10:35:20 +00:00
test: metadata: Improve test coverage
Test also the TITLE and DESCRIPTION metadata types.
This commit is contained in:
parent
490bf29d50
commit
e00eb2ccfe
@ -167,6 +167,10 @@ verifyMetadata(virDomainPtr dom,
|
|||||||
struct metadataTest {
|
struct metadataTest {
|
||||||
virConnectPtr conn;
|
virConnectPtr conn;
|
||||||
virDomainPtr dom;
|
virDomainPtr dom;
|
||||||
|
|
||||||
|
const char *data;
|
||||||
|
int type;
|
||||||
|
bool fail;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -215,6 +219,52 @@ testEraseMetadata(const void *data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
testTextMetadata(const void *data)
|
||||||
|
{
|
||||||
|
const struct metadataTest *test = data;
|
||||||
|
char *actual = NULL;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
if (virDomainSetMetadata(test->dom, test->type, test->data, NULL, NULL, 0) < 0) {
|
||||||
|
if (test->fail)
|
||||||
|
return 0;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
actual = virDomainGetMetadata(test->dom, test->type, NULL, 0);
|
||||||
|
|
||||||
|
if (STRNEQ_NULLABLE(test->data, actual)) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
"expected metadata doesn't match actual: "
|
||||||
|
"expected:'%s'\ngot: '%s'",
|
||||||
|
NULLSTR(test->data), NULLSTR(actual));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
VIR_FREE(actual);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TEST_TEXT_METADATA(INDEX, TYPE, DATA, FAIL) \
|
||||||
|
do { \
|
||||||
|
test.type = VIR_DOMAIN_METADATA_ ## TYPE; \
|
||||||
|
test.data = DATA; \
|
||||||
|
test.fail = FAIL; \
|
||||||
|
\
|
||||||
|
if (virtTestRun("text metadata: " #TYPE " " INDEX " ", \
|
||||||
|
testTextMetadata, &test) < 0) \
|
||||||
|
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)
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mymain(void)
|
mymain(void)
|
||||||
{
|
{
|
||||||
@ -238,6 +288,20 @@ mymain(void)
|
|||||||
if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0)
|
if (virtTestRun("Erase metadata ", testEraseMetadata, &test) < 0)
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
|
|
||||||
|
TEST_TITLE("1", "qwert");
|
||||||
|
TEST_TITLE("2", NULL);
|
||||||
|
TEST_TITLE("3", "blah");
|
||||||
|
TEST_TITLE_FAIL("4", "qwe\nrt");
|
||||||
|
TEST_TITLE("5", "");
|
||||||
|
TEST_TITLE_FAIL("6", "qwert\n");
|
||||||
|
TEST_TITLE_FAIL("7", "\n");
|
||||||
|
|
||||||
|
TEST_DESCR("1", "qwert\nqwert");
|
||||||
|
TEST_DESCR("2", NULL);
|
||||||
|
TEST_DESCR("3", "qwert");
|
||||||
|
TEST_DESCR("4", "\n");
|
||||||
|
TEST_DESCR("5", "");
|
||||||
|
|
||||||
virDomainFree(test.dom);
|
virDomainFree(test.dom);
|
||||||
virConnectClose(test.conn);
|
virConnectClose(test.conn);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user