[PATCH v7 076/104] tests/tcg/ppc64: user tests
Pierrick Bouvier <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
Tested-by: Aniket Sahu <[email protected]> Signed-off-by: Pierrick Bouvier <[email protected]> --- tests/tcg/meson.build | 1 + tests/tcg/ppc64/Makefile.target | 63 ------------------------------- tests/tcg/ppc64/meson.build | 56 +++++++++++++++++++++++++++ tests/tcg/ppc64le/Makefile.target | 4 +- 4 files changed, 59 insertions(+), 65 deletions(-) delete mode 100644 tests/tcg/ppc64/Makefile.target create mode 100644 tests/tcg/ppc64/meson.build diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build index d6406b5cb59..1d1986f5c1b 100644 --- a/tests/tcg/meson.build +++ b/tests/tcg/meson.build @@ -149,6 +149,7 @@ subdir('mips') subdir('mips64') subdir('mips64el') subdir('or1k') +subdir('ppc64') image_targets = {} exe_targets = [] diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target deleted file mode 100644 index 0d058b26006..00000000000 --- a/tests/tcg/ppc64/Makefile.target +++ /dev/null @@ -1,63 +0,0 @@ -# -*- Mode: makefile -*- -# -# ppc64 specific tweaks - -VPATH += $(SRC_PATH)/tests/tcg/ppc64 - -config-cc.mak: Makefile - $(quiet-@)( \ - $(call cc-option,-mcpu=power8, CROSS_CC_HAS_CPU_POWER8); \ - $(call cc-option,-mpower10, CROSS_CC_HAS_POWER10)) 3> config-cc.mak - --include config-cc.mak - -# multi-threaded tests are known to fail (e.g., clang-user CI job) -# See: https://gitlab.com/qemu-project/qemu/-/issues/2456 -run-signals: signals - $(call skip-test, $<, "BROKEN (flaky with clang) ") -run-plugin-signals-with-%: - $(call skip-test, $<, "BROKEN (flaky with clang) ") - -run-threadcount: threadcount - $(call skip-test, $<, "BROKEN (flaky with clang) ") -run-plugin-threadcount-with-%: - $(call skip-test, $<, "BROKEN (flaky with clang) ") - -ifneq ($(CROSS_CC_HAS_CPU_POWER8),) -PPC64_TESTS=bcdsub non_signalling_xscv -endif -$(PPC64_TESTS): CFLAGS += -mcpu=power8 - -ifneq ($(CROSS_CC_HAS_CPU_POWER8),) -PPC64_TESTS += vsx_f2i_nan -endif -vsx_f2i_nan: CFLAGS += -mcpu=power8 -I$(SRC_PATH)/include - -PPC64_TESTS += mtfsf -PPC64_TESTS += mffsce - -ifneq ($(CROSS_CC_HAS_POWER10),) -PPC64_TESTS += byte_reverse sha512-vector vector -endif -byte_reverse: CFLAGS += -mcpu=power10 -run-byte_reverse: QEMU_OPTS+=-cpu POWER10 - -sha512-vector: CFLAGS +=-mcpu=power10 -O3 -sha512-vector: sha512.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) - -run-sha512-vector: QEMU_OPTS+=-cpu POWER10 - -vector: CFLAGS += -mcpu=power10 -I$(SRC_PATH)/include -run-vector: QEMU_OPTS += -cpu POWER10 - -PPC64_TESTS += signal_save_restore_xer -PPC64_TESTS += xxspltw -PPC64_TESTS += test-aes - -# ppc64 ABI uses function descriptors, and thus, QEMU can't find symbol for a -# given instruction. Thus, we don't check output of mem-access plugin. -run-plugin-test-plugin-mem-access-with-libmem.so: \ - CHECK_PLUGIN_OUTPUT_COMMAND= - -TESTS += $(PPC64_TESTS) diff --git a/tests/tcg/ppc64/meson.build b/tests/tcg/ppc64/meson.build new file mode 100644 index 00000000000..c7e495f3d34 --- /dev/null +++ b/tests/tcg/ppc64/meson.build @@ -0,0 +1,56 @@ +cc_feat_cflags = { + 'power8': '-mcpu=power8', + 'power10': '-mcpu=power10', +} + +tests = [] + +# Multi arch tests +foreach t: tcg_tests['multiarch-linux-user']['tests'] + foreach src, setup: t + # ppc64 ABI uses function descriptors, and thus, QEMU can't find symbol + # for a given instruction. Thus, skip this test. + if fs.stem(src) == 'test-plugin-mem-access' and 'wrapper' in setup + continue + endif + tests += {src: setup} + endforeach +endforeach + +tests += { + '../ppc64/bcdsub.c': {'cc_feat': 'power8'}, + '../ppc64/byte_reverse.c': {'cc_feat': 'power10', 'qemu_args': ['-cpu', 'POWER10']}, + '../ppc64/mffsce.c': {}, + '../ppc64/mtfsf.c': {}, + '../ppc64/non_signalling_xscv.c': {'cc_feat': 'power8'}, + '../ppc64/signal_save_restore_xer.c': {}, + '../ppc64/test-aes.c': {}, + '../ppc64/vector.c': {'cc_feat': 'power10', 'qemu_args': ['-cpu', 'POWER10']}, + '../ppc64/vsx_f2i_nan.c': {'cc_feat': 'power8'}, + '../ppc64/xxspltw.c': {}, + '../multiarch/sha512.c': { + 'exe_name': 'sha512-vector', + 'cc_feat': 'power10', + 'cflags': ['-O3'], + 'qemu_args': ['-cpu', 'POWER10'], + } +} + +# export tests for ppc64le +tcg_tests_ppc64 = tests + +if 'qemu-ppc64' in emulators + tcg_tests += { + 'ppc64-linux-user': { + 'cc': 'powerpc64-linux-gnu-gcc', + 'cc_dockerfile': 'debian-all-test-cross', + 'cc_docker_host_arch': ['x86_64'], + 'cc_feat_cflags': cc_feat_cflags, + 'folder': 'ppc64', + 'gdb_arch': 'ppc64', + 'gdb_feat_version': gdb_feat_version, + 'qemu': emulators['qemu-ppc64'], + 'tests': tests, + } + } +endif diff --git a/tests/tcg/ppc64le/Makefile.target b/tests/tcg/ppc64le/Makefile.target index daad5118a56..00a0cdba295 100644 --- a/tests/tcg/ppc64le/Makefile.target +++ b/tests/tcg/ppc64le/Makefile.target @@ -2,6 +2,6 @@ # # ppc64le specific tweaks -VPATH += $(SRC_PATH)/tests/tcg/ppc64le +#VPATH += $(SRC_PATH)/tests/tcg/ppc64le -include $(SRC_PATH)/tests/tcg/ppc64/Makefile.target +#include $(SRC_PATH)/tests/tcg/ppc64/Makefile.target -- 2.43.0