diff options
author | Thomas Huth <thuth@redhat.com> | 2019-09-09 12:04:01 +0200 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2020-01-12 11:42:41 +0100 |
commit | 1e8a1fae7464ef79c9e50aa0f807d2c511be3c8e (patch) | |
tree | 80d1a4f0454b9a75c09461e69f969213350540ea /tests/prom-env-test.c | |
parent | 10ae5b303a0de07f0659a2c90d9c1266b3908b97 (diff) |
test: Move qtests to a separate directory
The tests directory itself is pretty overcrowded, and it's hard to
see which test belongs to which test subsystem (unit, qtest, ...).
Let's move the qtests to a separate folder for more clarity.
Message-Id: <20191218103059.11729-6-thuth@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/prom-env-test.c')
-rw-r--r-- | tests/prom-env-test.c | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/tests/prom-env-test.c b/tests/prom-env-test.c deleted file mode 100644 index 9be52c766f..0000000000 --- a/tests/prom-env-test.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Test Open-Firmware-based machines. - * - * Copyright (c) 2016, 2017 Red Hat Inc. - * - * Author: - * Thomas Huth <thuth@redhat.com> - * - * This work is licensed under the terms of the GNU GPL, version 2 - * or later. See the COPYING file in the top-level directory. - * - * This test is used to check that some Open Firmware based machines (i.e. - * OpenBIOS or SLOF) can be started successfully in TCG mode. To do this, we - * first put some Forth code into the "boot-command" Open Firmware environment - * variable. This Forth code writes a well-known magic value to a known location - * in memory. Then we start the guest so that the firmware can boot and finally - * run the Forth code. - * The testing code here then can finally check whether the value has been - * successfully written into the guest memory. - */ - -#include "qemu/osdep.h" -#include "libqtest.h" - -#define MAGIC 0xcafec0de -#define ADDRESS 0x4000 - -static void check_guest_memory(QTestState *qts) -{ - uint32_t signature; - int i; - - /* Poll until code has run and modified memory. Wait at most 600 seconds */ - for (i = 0; i < 60000; ++i) { - signature = qtest_readl(qts, ADDRESS); - if (signature == MAGIC) { - break; - } - g_usleep(10000); - } - - g_assert_cmphex(signature, ==, MAGIC); -} - -static void test_machine(const void *machine) -{ - const char *extra_args = ""; - QTestState *qts; - - /* - * The pseries firmware boots much faster without the default - * devices, it also needs Spectre/Meltdown workarounds disabled to - * avoid warnings with TCG - */ - if (strcmp(machine, "pseries") == 0) { - extra_args = "-nodefaults" - " -machine cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken"; - } - - qts = qtest_initf("-M %s -accel tcg %s -prom-env 'use-nvramrc?=true' " - "-prom-env 'nvramrc=%x %x l!' ", (const char *)machine, - extra_args, MAGIC, ADDRESS); - check_guest_memory(qts); - qtest_quit(qts); -} - -static void add_tests(const char *machines[]) -{ - int i; - char *name; - - for (i = 0; machines[i] != NULL; i++) { - name = g_strdup_printf("prom-env/%s", machines[i]); - qtest_add_data_func(name, machines[i], test_machine); - g_free(name); - } -} - -int main(int argc, char *argv[]) -{ - const char *sparc_machines[] = { "SPARCbook", "Voyager", "SS-20", NULL }; - const char *sparc64_machines[] = { "sun4u", NULL }; - const char *ppc_machines[] = { "mac99", "g3beige", NULL }; - const char *arch = qtest_get_arch(); - - g_test_init(&argc, &argv, NULL); - - if (!strcmp(arch, "ppc")) { - add_tests(ppc_machines); - } else if (!strcmp(arch, "ppc64")) { - add_tests(ppc_machines); - if (g_test_slow()) { - qtest_add_data_func("prom-env/pseries", "pseries", test_machine); - } - } else if (!strcmp(arch, "sparc")) { - add_tests(sparc_machines); - } else if (!strcmp(arch, "sparc64")) { - add_tests(sparc64_machines); - } else { - g_assert_not_reached(); - } - - return g_test_run(); -} |