1
0

tests: virstorage: Allow testing return value of virStorageSourceNewFromBackingAbsolute

Modify testBackingParse to allow testing other return values of the
backing store string parser.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2019-08-15 19:27:43 +02:00
parent 5265743daa
commit e1189ae5f3

View File

@ -603,6 +603,7 @@ testPathRelative(const void *args)
struct testBackingParseData { struct testBackingParseData {
const char *backing; const char *backing;
const char *expect; const char *expect;
int rv;
}; };
static int static int
@ -612,14 +613,21 @@ testBackingParse(const void *args)
VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER; VIR_AUTOCLEAN(virBuffer) buf = VIR_BUFFER_INITIALIZER;
VIR_AUTOFREE(char *) xml = NULL; VIR_AUTOFREE(char *) xml = NULL;
VIR_AUTOUNREF(virStorageSourcePtr) src = NULL; VIR_AUTOUNREF(virStorageSourcePtr) src = NULL;
int rc;
int erc = data->rv;
if (virStorageSourceNewFromBackingAbsolute(data->backing, &src) < 0) { /* expect failure return code with NULL expected data */
if (!data->expect) if (!data->expect)
return 0; erc = -1;
else
if ((rc = virStorageSourceNewFromBackingAbsolute(data->backing, &src)) != erc) {
fprintf(stderr, "expected return value '%d' actual '%d'\n", erc, rc);
return -1; return -1;
} }
if (!src)
return 0;
if (src && !data->expect) { if (src && !data->expect) {
fprintf(stderr, "parsing of backing store string '%s' should " fprintf(stderr, "parsing of backing store string '%s' should "
"have failed\n", data->backing); "have failed\n", data->backing);
@ -1225,15 +1233,19 @@ mymain(void)
virTestCounterReset("Backing store parse "); virTestCounterReset("Backing store parse ");
#define TEST_BACKING_PARSE(bck, xml) \ #define TEST_BACKING_PARSE_FULL(bck, xml, rc) \
do { \ do { \
data5.backing = bck; \ data5.backing = bck; \
data5.expect = xml; \ data5.expect = xml; \
data5.rv = rc; \
if (virTestRun(virTestCounterNext(), \ if (virTestRun(virTestCounterNext(), \
testBackingParse, &data5) < 0) \ testBackingParse, &data5) < 0) \
ret = -1; \ ret = -1; \
} while (0) } while (0)
#define TEST_BACKING_PARSE(bck, xml) \
TEST_BACKING_PARSE_FULL(bck, xml, 0)
TEST_BACKING_PARSE("path", "<source file='path'/>\n"); TEST_BACKING_PARSE("path", "<source file='path'/>\n");
TEST_BACKING_PARSE("://", NULL); TEST_BACKING_PARSE("://", NULL);
TEST_BACKING_PARSE("http://example.com", TEST_BACKING_PARSE("http://example.com",