From 53850b8894cfca3cbe405979ba8a55539cd17516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Thu, 19 Mar 2015 18:35:23 +0100 Subject: [PATCH 1/4] fw_cfg-test: Fix test path to include architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use qtest_add_func() instead of g_test_add_func() to reflect the architecture tested, changing GTester paths as follows: /fw_cfg/foo -> /x86_64/fw_cfg/foo etc. Cc: qemu-stable@nongnu.org Reviewed-by: Paolo Bonzini Signed-off-by: Andreas Färber --- tests/fw_cfg-test.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c index 5c8f8d6c24..9be78e9564 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); From 7949c0e39f7638a85515a1dcbd8bc96d13fca6de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Tue, 24 Mar 2015 19:33:34 +0100 Subject: [PATCH 2/4] qtest: Add qtest_add_data_func() wrapper function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It calls g_test_add_data_func() with a path supplemented by the architecture, like qtest_add_func() does. Reviewed-by: John Snow Reviewed-by: Stefan Hajnoczi Signed-off-by: Andreas Färber --- tests/libqtest.c | 7 +++++++ tests/libqtest.h | 12 ++++++++++++ 2 files changed, 19 insertions(+) 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 From 45b0f830dd1817277eeb97032ce64b3103fe0b6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Wed, 25 Mar 2015 16:52:45 +0100 Subject: [PATCH 3/4] qtest: Add qtest_add() wrapper macro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It extends g_test_add() macro with the architecture path. Reviewed-by: John Snow Signed-off-by: Andreas Färber --- tests/libqtest.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/libqtest.h b/tests/libqtest.h index 9281f5c134..03469b8781 100644 --- a/tests/libqtest.h +++ b/tests/libqtest.h @@ -356,6 +356,26 @@ void qtest_add_func(const char *str, void (*fn)); */ 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 From 6ca90ffeec8e3b4e306be32efd930d75a6d0b295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Tue, 24 Mar 2015 19:35:22 +0100 Subject: [PATCH 4/4] i440fx-test: Fix test paths to include architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace g_test_add_func() with new qtest_add_func() and g_test_add() macro with qtest_add() macro. This effectively changes GTester paths: /i440fx/foo -> /x86_64/i440fx/foo etc. Cc: qemu-stable@nongnu.org Reviewed-by: John Snow Signed-off-by: Andreas Färber --- tests/i440fx-test.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/i440fx-test.c b/tests/i440fx-test.c index a3f72790ea..d0bc8de25a 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;