diff --git a/tests/libqtest.c b/tests/libqtest.c index 9a92aa70e4..12d65bd1e6 100644 --- a/tests/libqtest.c +++ b/tests/libqtest.c @@ -652,6 +652,13 @@ void qtest_add_func(const char *str, void (*fn)) g_free(path); } +void qtest_add_data_func(const char *str, const void *data, void (*fn)) +{ + gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str); + g_test_add_data_func(path, data, fn); + g_free(path); +} + void qtest_memwrite(QTestState *s, uint64_t addr, const void *data, size_t size) { const uint8_t *ptr = data; diff --git a/tests/libqtest.h b/tests/libqtest.h index e7413d52dc..9281f5c134 100644 --- a/tests/libqtest.h +++ b/tests/libqtest.h @@ -344,6 +344,18 @@ const char *qtest_get_arch(void); */ void qtest_add_func(const char *str, void (*fn)); +/** + * qtest_add_data_func: + * @str: Test case path. + * @data: Test case data + * @fn: Test case function + * + * Add a GTester testcase with the given name, data and function. + * The path is prefixed with the architecture under test, as + * returned by qtest_get_arch(). + */ +void qtest_add_data_func(const char *str, const void *data, void (*fn)); + /** * qtest_start: * @args: other arguments to pass to QEMU