[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets |
Date: |
Mon, 7 Oct 2019 17:19:05 +0200 |
We have been restricting our fw_cfg tests to the PC machine,
which is a little-endian architecture.
The fw_cfg device is also used on the SPARC and PowerPC
architectures, which can run in big-endian configuration.
Since we want to be sure our device does not regress
regardless the endianess used, enable this test one
these targets.
The NUMA selector is X86 specific, restrict it to this arch.
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
v2: test ppc32 too (lvivier)
---
tests/Makefile.include | 2 ++
tests/fw_cfg-test.c | 33 +++++++++++++++++++++++++++------
2 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 3543451ed3..4ae3d5140a 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -226,6 +226,7 @@ check-qtest-ppc-y += tests/prom-env-test$(EXESUF)
check-qtest-ppc-y += tests/drive_del-test$(EXESUF)
check-qtest-ppc-y += tests/boot-serial-test$(EXESUF)
check-qtest-ppc-$(CONFIG_M48T59) += tests/m48t59-test$(EXESUF)
+check-qtest-ppc-y += tests/fw_cfg-test$(EXESUF)
check-qtest-ppc64-y += $(check-qtest-ppc-y)
check-qtest-ppc64-$(CONFIG_PSERIES) += tests/device-plug-test$(EXESUF)
@@ -250,6 +251,7 @@ check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) =
tests/endianness-test$(EXESUF)
check-qtest-sparc-y += tests/prom-env-test$(EXESUF)
check-qtest-sparc-y += tests/m48t59-test$(EXESUF)
check-qtest-sparc-y += tests/boot-serial-test$(EXESUF)
+check-qtest-sparc-y += tests/fw_cfg-test$(EXESUF)
check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF)
check-qtest-sparc64-y += tests/prom-env-test$(EXESUF)
diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c
index 35af0de7e6..1250e87097 100644
--- a/tests/fw_cfg-test.c
+++ b/tests/fw_cfg-test.c
@@ -210,13 +210,30 @@ static void test_fw_cfg_splash_time(const void *opaque)
int main(int argc, char **argv)
{
- QTestCtx ctx;
- int ret;
+ const char *arch = qtest_get_arch();
+ bool has_numa = false;
+ QTestCtx ctx = {};
+ int ret = 0;
g_test_init(&argc, &argv, NULL);
- ctx.machine_name = "pc";
- ctx.fw_cfg = pc_fw_cfg_init();
+ if (g_str_equal(arch, "i386") || g_str_equal(arch, "x86_64")) {
+ has_numa = true;
+ ctx.machine_name = "pc";
+ ctx.fw_cfg = pc_fw_cfg_init();
+ } else if (g_str_equal(arch, "sparc")) {
+ ctx.machine_name = "SS-5";
+ ctx.fw_cfg = mm_fw_cfg_init(0xd00000510ULL);
+ } else if (g_str_equal(arch, "ppc") || g_str_equal(arch, "ppc64")) {
+ /*
+ * The mac99 machine is different for 32/64-bit target:
+ *
+ * ppc(32): the G4 which can be either little or big endian,
+ * ppc64: the G5 (970FX) is only big-endian.
+ */
+ ctx.machine_name = "mac99";
+ ctx.fw_cfg = mm_fw_cfg_init(0xf0000510);
+ }
qtest_add_data_func("fw_cfg/signature", &ctx, test_fw_cfg_signature);
qtest_add_data_func("fw_cfg/id", &ctx, test_fw_cfg_id);
@@ -231,14 +248,18 @@ int main(int argc, char **argv)
qtest_add_func("fw_cfg/boot_device", test_fw_cfg_boot_device);
#endif
qtest_add_data_func("fw_cfg/max_cpus", &ctx, test_fw_cfg_max_cpus);
- qtest_add_data_func("fw_cfg/numa", &ctx, test_fw_cfg_numa);
qtest_add_data_func("fw_cfg/boot_menu", &ctx, test_fw_cfg_boot_menu);
qtest_add_data_func("fw_cfg/reboot_timeout", &ctx,
test_fw_cfg_reboot_timeout);
qtest_add_data_func("fw_cfg/splash_time", &ctx, test_fw_cfg_splash_time);
- ret = g_test_run();
+ if (has_numa) {
+ qtest_add_data_func("fw_cfg/numa", &ctx, test_fw_cfg_numa);
+ }
+ if (ctx.machine_name) {
+ ret = g_test_run();
+ }
g_free(ctx.fw_cfg);
return ret;
--
2.21.0
- [PATCH v2 2/7] tests/libqos/fw_cfg: Document mm_fw_cfg_init to drop mm_fw_cfg_uninit, (continued)
- [PATCH v2 2/7] tests/libqos/fw_cfg: Document mm_fw_cfg_init to drop mm_fw_cfg_uninit, Philippe Mathieu-Daudé, 2019/10/07
- [PATCH v2 3/7] tests/libqos/fw_cfg: Document pc_fw_cfg_init to drop pc_fw_cfg_uninit, Philippe Mathieu-Daudé, 2019/10/07
- [PATCH v2 4/7] tests/fw_cfg: Let the tests use a context, Philippe Mathieu-Daudé, 2019/10/07
- [PATCH v2 5/7] tests/libqos/fw_cfg: Pass QTestState as argument, Philippe Mathieu-Daudé, 2019/10/07
- [PATCH v2 6/7] tests/fw_cfg: Declare one QFWCFG for all tests, Philippe Mathieu-Daudé, 2019/10/07
- [PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets,
Philippe Mathieu-Daudé <=
- Re: [PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets, Laszlo Ersek, 2019/10/07
- Re: [PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets, Li Qiang, 2019/10/08
- Re: [PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets, Laszlo Ersek, 2019/10/08
- Re: [PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets, Peter Maydell, 2019/10/08
- Re: [PATCH v2 7/7] tests/fw_cfg: Run the tests on big-endian targets, Li Qiang, 2019/10/08