mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-25 08:58:36 -07:00
Add an explicit test to check expected memory values are read/written. 8,16,32 load/store are tested for all arch. 64,128 load/store are tested for aarch64/x64. atomic operations (8,16,32,64) are tested for x64 only. By default, atomic accesses are non atomic if a single cpu is running, so we force creation of a second one by creating a new thread first. load/store helpers code path can't be triggered easily in user mode (no softmmu), so we can't test it here. Output of test-plugin-mem-access.c is the list of expected patterns in plugin output. By reading stdout, we can compare to plugins output and have a multiarch test. Can be run with: make -C build/tests/tcg/$ARCH-linux-user run-plugin-test-plugin-mem-access-with-libmem.so Tested-by: Xingtao Yao <yaoxt.fnst@fujitsu.com> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240910172033.1427812-7-pierrick.bouvier@linaro.org> Message-Id: <20240916085400.1046925-10-alex.bennee@linaro.org>
63 lines
1.8 KiB
Makefile
63 lines
1.8 KiB
Makefile
# -*- Mode: makefile -*-
|
|
#
|
|
# ppc64 specific tweaks
|
|
|
|
VPATH += $(SRC_PATH)/tests/tcg/ppc64
|
|
|
|
config-cc.mak: Makefile
|
|
$(quiet-@)( \
|
|
$(call cc-option,-mpower8-vector, CROSS_CC_HAS_POWER8_VECTOR); \
|
|
$(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_POWER8_VECTOR),)
|
|
PPC64_TESTS=bcdsub non_signalling_xscv
|
|
endif
|
|
$(PPC64_TESTS): CFLAGS += -mpower8-vector
|
|
|
|
ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
|
|
PPC64_TESTS += vsx_f2i_nan
|
|
endif
|
|
vsx_f2i_nan: CFLAGS += -mpower8-vector -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)
|