[PATCH v7 084/104] tests/tcg/s390x: user tests
Pierrick Bouvier <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
Reviewed-by: Ilya Leoshkevich <[email protected]> Tested-by: Aniket Sahu <[email protected]> Signed-off-by: Pierrick Bouvier <[email protected]> --- tests/tcg/meson.build | 1 + tests/tcg/s390x/Makefile.target | 129 ----------------------------- tests/tcg/s390x/meson.build | 140 ++++++++++++++++++++++++++++++++ 3 files changed, 141 insertions(+), 129 deletions(-) delete mode 100644 tests/tcg/s390x/Makefile.target create mode 100644 tests/tcg/s390x/meson.build diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build index 1a48b37f75c..6bc2829ba92 100644 --- a/tests/tcg/meson.build +++ b/tests/tcg/meson.build @@ -152,6 +152,7 @@ subdir('or1k') subdir('ppc64') subdir('ppc64le') subdir('riscv64') +subdir('s390x') image_targets = {} exe_targets = [] diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target deleted file mode 100644 index 97c0f021902..00000000000 --- a/tests/tcg/s390x/Makefile.target +++ /dev/null @@ -1,129 +0,0 @@ -S390X_SRC=$(SRC_PATH)/tests/tcg/s390x -VPATH+=$(S390X_SRC) -CFLAGS+=-march=zEC12 -m64 - -%.o: %.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@ - -config-cc.mak: Makefile - $(quiet-@)( \ - $(call cc-option,-march=z14, CROSS_CC_HAS_Z14); \ - $(call cc-option,-march=z15, CROSS_CC_HAS_Z15)) 3> config-cc.mak --include config-cc.mak - -TESTS+=hello-s390x -TESTS+=csst -TESTS+=ipm -TESTS+=exrl-trt -TESTS+=exrl-trtr -TESTS+=pack -TESTS+=mie3-compl -TESTS+=mie3-mvcrl -TESTS+=mie3-sel -TESTS+=mvo -TESTS+=mvc -TESTS+=shift -TESTS+=trap -TESTS+=signals-s390x -TESTS+=branch-relative-long -TESTS+=noexec -TESTS+=div -TESTS+=clst -TESTS+=long-double -TESTS+=cdsg -TESTS+=chrl -TESTS+=rxsbg -TESTS+=ex-relative-long -TESTS+=ex-branch -TESTS+=mxdb -TESTS+=epsw -TESTS+=larl -TESTS+=mdeb -TESTS+=cgebra -TESTS+=clgebr -TESTS+=clc -TESTS+=laalg -TESTS+=add-logical-with-carry -TESTS+=lae -TESTS+=cvd -TESTS+=cvb -TESTS+=ts -TESTS+=ex-smc -TESTS+=divide-to-integer -TESTS+=stckf - -cdsg: CFLAGS+=-pthread -cdsg: LDFLAGS+=-pthread - -# The following tests contain inline assembly that requires inlining, -# and thus cannot be built with -O0. -rxsbg: CFLAGS+=-O2 -divide-to-integer: CFLAGS+=-O2 - -cgebra: LDFLAGS+=-lm -clgebr: LDFLAGS+=-lm -divide-to-integer: LDFLAGS+=-lm - -include $(S390X_SRC)/pgm-specification.mak -$(PGM_SPECIFICATION_TESTS): pgm-specification-user.o -$(PGM_SPECIFICATION_TESTS): LDFLAGS+=pgm-specification-user.o -TESTS += $(PGM_SPECIFICATION_TESTS) - -Z13_TESTS=vistr -Z13_TESTS+=lcbb -Z13_TESTS+=locfhr -Z13_TESTS+=vcksm -Z13_TESTS+=vstl -Z13_TESTS+=vrep -Z13_TESTS+=precise-smc-user -Z13_TESTS+=prno-trng -$(Z13_TESTS): CFLAGS+=-march=z13 -O2 -TESTS+=$(Z13_TESTS) - -ifneq ($(CROSS_CC_HAS_Z14),) -Z14_TESTS=fma vfminmax -fma: float.h -fma: LDFLAGS+=-lm -vfminmax: LDFLAGS+=-lm -vfminmax: float.h -$(Z14_TESTS): CFLAGS+=-march=z14 -O2 -TESTS+=$(Z14_TESTS) -endif - -ifneq ($(CROSS_CC_HAS_Z15),) -Z15_TESTS=vxeh2_vs -Z15_TESTS+=vxeh2_vcvt -Z15_TESTS+=vxeh2_vlstr -Z15_TESTS+=vxeh2_vstrs -$(Z15_TESTS): CFLAGS+=-march=z15 -O2 -TESTS+=$(Z15_TESTS) -endif - -ifneq ($(GDB),) -GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py - -run-gdbstub-signals-s390x: signals-s390x - $(call run-test, $@, $(GDB_SCRIPT) \ - --gdb $(GDB) \ - --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ - --bin $< --test $(S390X_SRC)/gdbstub/test-signals-s390x.py, \ - mixing signals and debugging) - -hello-s390x-asm: CFLAGS+=-nostdlib - -run-gdbstub-svc: hello-s390x-asm - $(call run-test, $@, $(GDB_SCRIPT) \ - --gdb $(GDB) \ - --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ - --bin $< --test $(S390X_SRC)/gdbstub/test-svc.py, \ - single-stepping svc) - -EXTRA_RUNS += run-gdbstub-signals-s390x run-gdbstub-svc -endif - -# MVX versions of sha512 -sha512-mvx: CFLAGS=-march=z13 -mvx -O3 -sha512-mvx: sha512.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) - -TESTS+=sha512-mvx diff --git a/tests/tcg/s390x/meson.build b/tests/tcg/s390x/meson.build new file mode 100644 index 00000000000..c8a8e550e67 --- /dev/null +++ b/tests/tcg/s390x/meson.build @@ -0,0 +1,140 @@ +cc = 's390x-linux-gnu-gcc' +cc_dockerfile = 'debian-all-test-cross' +cc_docker_host_arch = ['aarch64', 'x86_64'] + +cc_feat_cflags = { + 'z14': '-march=z14', + 'z15': '-march=z15', +} + +tests_s390x_pgm = [ + 'br-odd.S', + 'cgrl-unaligned.S', + 'clrl-unaligned.S', + 'crl-unaligned.S', + 'ex-odd.S', + 'lgrl-unaligned.S', + 'llgfrl-unaligned.S', + 'lpswe-unaligned.S', + 'lrl-unaligned.S', + 'stgrl-unaligned.S', + 'strl-unaligned.S', +] + +tests = [] + +# Multi arch tests +tests += tcg_tests['multiarch-linux-user']['tests'] + +tests += { + # The following tests contain inline assembly that requires inlining, + # and thus cannot be built with -O0. + 'rxsbg.c': {'cflags': ['-O2']}, + 'divide-to-integer.c': {'cflags': ['-O2', '-lm']}, + + 'hello-s390x.c': {}, + 'hello-s390x-asm.S': {'cflags': ['-nostdlib']}, + 'csst.c': {}, + 'ipm.c': {}, + 'exrl-trt.c': {}, + 'exrl-trtr.c': {}, + 'pack.c': {}, + 'mie3-compl.c': {}, + 'mie3-mvcrl.c': {}, + 'mie3-sel.c': {}, + 'mvo.c': {}, + 'mvc.c': {}, + 'shift.c': {}, + 'trap.c': {}, + 'signals-s390x.c': {}, + 'branch-relative-long.c': {}, + 'noexec.c': {}, + 'div.c': {}, + 'clst.c': {}, + 'long-double.c': {}, + 'cdsg.c': {}, + 'chrl.c': {}, + 'ex-relative-long.c': {}, + 'ex-branch.c': {}, + 'mxdb.c': {}, + 'epsw.c': {}, + 'larl.c': {}, + 'mdeb.c': {}, + 'cgebra.c': {'cflags': ['-lm']}, + 'clgebr.c': {'cflags': ['-lm']}, + 'clc.c': {}, + 'laalg.c': {}, + 'add-logical-with-carry.c': {}, + 'lae.c': {}, + 'cvd.c': {}, + 'cvb.c': {}, + 'stckf.c': {}, + 'ts.c': {}, + 'ex-smc.c': {'cflags': ['-Wl,--no-warn-rwx-segments']}, +} + +foreach src: tests_s390x_pgm + tests += { + src: {'cflags': [files('pgm-specification-user.c')]} + } +endforeach + +setup_z13 = {'cflags': ['-O2', '-march=z13']} +tests += { + 'vistr.c': setup_z13, + 'lcbb.c': setup_z13, + 'locfhr.c': setup_z13, + 'vcksm.c': setup_z13, + 'vstl.c': setup_z13, + 'vrep.c': setup_z13, + 'precise-smc-user.c': setup_z13, + 'prno-trng.c': setup_z13, + '../multiarch/sha512.c': { + 'exe_name': 'sha512-mvx', + 'cflags': setup_z13['cflags'] + ['-mvx', '-O3'], + } +} + +setup_z14 = { + 'cc_feat': 'z14', + 'cflags': ['-O2', '-lm', '-Wl,--no-warn-rwx-segments'] +} +tests += { + 'fma.c': setup_z14, + 'vfminmax.c': setup_z14, +} + +setup_z15 = {'cc_feat': 'z15', 'cflags': ['-O2']} +tests += { + 'vxeh2_vs.c': setup_z15, + 'vxeh2_vcvt.c': setup_z15, + 'vxeh2_vlstr.c': setup_z15, + 'vxeh2_vstrs.c': setup_z15, +} + +tests += { + 'signals-s390x.c': { + 'test_name': 'signals', + 'gdb_test': ['--test', files('gdbstub/test-signals-s390x.py')], + }, + 'hello-s390x-asm.S': { + 'test_name': 'svc', + 'gdb_test': ['--test', files('gdbstub/test-svc.py')], + }, +} + +if 'qemu-s390x' in emulators + tcg_tests += { + 's390x-linux-user': { + 'cc': cc, + 'cc_dockerfile': cc_dockerfile, + 'cc_docker_host_arch': cc_docker_host_arch, + 'cc_feat_cflags': cc_feat_cflags, + 'folder': 's390x', + 'gdb_arch': 's390x', + 'gdb_feat_version': gdb_feat_version, + 'qemu': emulators['qemu-s390x'], + 'tests': tests, + } + } +endif -- 2.43.0