Commit 9e0ad347 authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/afaerber/tags/qtest-for-2.3' into staging



QTest cleanups

* Change fw_cfg-test and i440fx-test GTester paths
* Extend libqtest API as necessary

# gpg: Signature made Mon Mar 30 18:29:39 2015 BST using RSA key ID 3E7E013F
# gpg: Good signature from "Andreas Färber <afaerber@suse.de>"
# gpg:                 aka "Andreas Färber <afaerber@suse.com>"

* remotes/afaerber/tags/qtest-for-2.3:
  i440fx-test: Fix test paths to include architecture
  qtest: Add qtest_add() wrapper macro
  qtest: Add qtest_add_data_func() wrapper function
  fw_cfg-test: Fix test path to include architecture

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents adbeb458 6ca90ffe
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -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);
+6 −6
Original line number Diff line number Diff line
@@ -383,7 +383,7 @@ static void add_firmware_test(const char *testpath,
                              void (*setup_fixture)(FirmwareTestFixture *f,
                                                    gconstpointer test_data))
{
    g_test_add(testpath, FirmwareTestFixture, NULL, setup_fixture,
    qtest_add(testpath, FirmwareTestFixture, NULL, setup_fixture,
              test_i440fx_firmware, NULL);
}

@@ -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;
+7 −0
Original line number Diff line number Diff line
@@ -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;
+32 −0
Original line number Diff line number Diff line
@@ -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