diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c index 5c8f8d6c2465c3d370834de5123ced3eb3c66d47..9be78e9564bf23b5faa7556848194be33fb7f1cf 100644 --- a/tests/fw_cfg-test.c +++ b/tests/fw_cfg-test.c @@ -109,21 +109,21 @@ int main(int argc, char **argv) fw_cfg = pc_fw_cfg_init(); - g_test_add_func("/fw_cfg/signature", test_fw_cfg_signature); - g_test_add_func("/fw_cfg/id", test_fw_cfg_id); - g_test_add_func("/fw_cfg/uuid", test_fw_cfg_uuid); - g_test_add_func("/fw_cfg/ram_size", test_fw_cfg_ram_size); - g_test_add_func("/fw_cfg/nographic", test_fw_cfg_nographic); - g_test_add_func("/fw_cfg/nb_cpus", test_fw_cfg_nb_cpus); + qtest_add_func("fw_cfg/signature", test_fw_cfg_signature); + qtest_add_func("fw_cfg/id", test_fw_cfg_id); + qtest_add_func("fw_cfg/uuid", test_fw_cfg_uuid); + qtest_add_func("fw_cfg/ram_size", test_fw_cfg_ram_size); + qtest_add_func("fw_cfg/nographic", test_fw_cfg_nographic); + qtest_add_func("fw_cfg/nb_cpus", test_fw_cfg_nb_cpus); #if 0 - g_test_add_func("/fw_cfg/machine_id", test_fw_cfg_machine_id); - g_test_add_func("/fw_cfg/kernel", test_fw_cfg_kernel); - g_test_add_func("/fw_cfg/initrd", test_fw_cfg_initrd); - g_test_add_func("/fw_cfg/boot_device", test_fw_cfg_boot_device); + qtest_add_func("fw_cfg/machine_id", test_fw_cfg_machine_id); + qtest_add_func("fw_cfg/kernel", test_fw_cfg_kernel); + qtest_add_func("fw_cfg/initrd", test_fw_cfg_initrd); + qtest_add_func("fw_cfg/boot_device", test_fw_cfg_boot_device); #endif - g_test_add_func("/fw_cfg/max_cpus", test_fw_cfg_max_cpus); - g_test_add_func("/fw_cfg/numa", test_fw_cfg_numa); - g_test_add_func("/fw_cfg/boot_menu", test_fw_cfg_boot_menu); + qtest_add_func("fw_cfg/max_cpus", test_fw_cfg_max_cpus); + qtest_add_func("fw_cfg/numa", test_fw_cfg_numa); + qtest_add_func("fw_cfg/boot_menu", test_fw_cfg_boot_menu); cmdline = g_strdup_printf("-uuid 4600cb32-38ec-4b2f-8acb-81c6ea54f2d8 "); s = qtest_start(cmdline); diff --git a/tests/i440fx-test.c b/tests/i440fx-test.c index a3f72790ea4aff46496acd42d3240fe3fde41cbd..d0bc8de25ab40be04f8ff04d0b409d1b64db4d25 100644 --- a/tests/i440fx-test.c +++ b/tests/i440fx-test.c @@ -383,8 +383,8 @@ static void add_firmware_test(const char *testpath, void (*setup_fixture)(FirmwareTestFixture *f, gconstpointer test_data)) { - g_test_add(testpath, FirmwareTestFixture, NULL, setup_fixture, - test_i440fx_firmware, NULL); + qtest_add(testpath, FirmwareTestFixture, NULL, setup_fixture, + test_i440fx_firmware, NULL); } static void request_bios(FirmwareTestFixture *fixture, @@ -408,10 +408,10 @@ int main(int argc, char **argv) data.num_cpus = 1; - g_test_add_data_func("/i440fx/defaults", &data, test_i440fx_defaults); - g_test_add_data_func("/i440fx/pam", &data, test_i440fx_pam); - add_firmware_test("/i440fx/firmware/bios", request_bios); - add_firmware_test("/i440fx/firmware/pflash", request_pflash); + qtest_add_data_func("i440fx/defaults", &data, test_i440fx_defaults); + qtest_add_data_func("i440fx/pam", &data, test_i440fx_pam); + add_firmware_test("i440fx/firmware/bios", request_bios); + add_firmware_test("i440fx/firmware/pflash", request_pflash); ret = g_test_run(); return ret; diff --git a/tests/libqtest.c b/tests/libqtest.c index 9a92aa70e44fee968f30a5a7b820fecad7bba8f5..12d65bd1e6ca1fc85cb6d23468b42a3054895496 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 e7413d52dcb87813f826bbfa0da1c904cf29a670..03469b87817e76e1df87cce3ea5f4ddb5ab4607e 100644 --- a/tests/libqtest.h +++ b/tests/libqtest.h @@ -344,6 +344,38 @@ 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_add: + * @testpath: Test case path + * @Fixture: Fixture type + * @tdata: Test case data + * @fsetup: Test case setup function + * @ftest: Test case function + * @fteardown: Test case teardown function + * + * Add a GTester testcase with the given name, data and functions. + * The path is prefixed with the architecture under test, as + * returned by qtest_get_arch(). + */ +#define qtest_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \ + do { \ + char *path = g_strdup_printf("/%s/%s", qtest_get_arch(), testpath); \ + g_test_add(path, Fixture, tdata, fsetup, ftest, fteardown); \ + g_free(path); \ + } while (0) + /** * qtest_start: * @args: other arguments to pass to QEMU