tests/qtest: failover: use a macro for check_one_card()

This allows g_assert() to correctly report the line number of the error
in the test case.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20220203141537.972317-3-lvivier@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Laurent Vivier 2022-02-03 15:15:32 +01:00 committed by Thomas Huth
parent fbd2913cce
commit 1a800870c5
1 changed files with 21 additions and 26 deletions

View File

@ -224,32 +224,27 @@ static char *get_mac(QTestState *qts, const char *name)
return mac;
}
static void check_one_card(QTestState *qts, bool present,
const char *id, const char *mac)
{
QDict *device;
QDict *bus;
char *addr;
bus = get_bus(qts, 0);
device = find_device(bus, id);
if (present) {
char *path;
g_assert_nonnull(device);
qobject_unref(device);
path = g_strdup_printf("/machine/peripheral/%s", id);
addr = get_mac(qts, path);
g_free(path);
g_assert_cmpstr(mac, ==, addr);
g_free(addr);
} else {
g_assert_null(device);
}
qobject_unref(bus);
}
#define check_one_card(qts, present, id, mac) \
do { \
QDict *device; \
QDict *bus; \
char *addr; \
bus = get_bus(qts, 0); \
device = find_device(bus, id); \
if (present) { \
char *path; \
g_assert_nonnull(device); \
qobject_unref(device); \
path = g_strdup_printf("/machine/peripheral/%s", id); \
addr = get_mac(qts, path); \
g_free(path); \
g_assert_cmpstr(mac, ==, addr); \
g_free(addr); \
} else { \
g_assert_null(device); \
} \
qobject_unref(bus); \
} while (0)
static void test_on(void)
{