[PATCH v7 095/104] tests/tcg/xtensa: system tests
Pierrick Bouvier <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
We prepare structure to be able to test multiple cores. Tested-by: Aniket Sahu <[email protected]> Signed-off-by: Pierrick Bouvier <[email protected]> --- tests/tcg/meson.build | 1 + tests/tcg/xtensa/Makefile.softmmu-target | 46 ----------- tests/tcg/xtensa/meson.build | 96 ++++++++++++++++++++++ tests/tcg/xtensaeb/Makefile.softmmu-target | 2 +- 4 files changed, 98 insertions(+), 47 deletions(-) delete mode 100644 tests/tcg/xtensa/Makefile.softmmu-target create mode 100644 tests/tcg/xtensa/meson.build diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build index 163e0a96753..76f8f3e6e02 100644 --- a/tests/tcg/meson.build +++ b/tests/tcg/meson.build @@ -156,6 +156,7 @@ subdir('s390x') subdir('sh4') subdir('tricore') subdir('x86_64') +subdir('xtensa') image_targets = {} exe_targets = [] diff --git a/tests/tcg/xtensa/Makefile.softmmu-target b/tests/tcg/xtensa/Makefile.softmmu-target deleted file mode 100644 index a29571b367c..00000000000 --- a/tests/tcg/xtensa/Makefile.softmmu-target +++ /dev/null @@ -1,46 +0,0 @@ -# -# Xtensa system tests -# - -CORE=dc232b -ifneq ($(shell $(QEMU) -cpu help | grep -w $(CORE)),) - -XTENSA_SRC = $(SRC_PATH)/tests/tcg/xtensa -XTENSA_ALL = $(filter-out $(XTENSA_SRC)/linker.ld.S,$(wildcard $(XTENSA_SRC)/*.S)) -XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL)) -# Filter out common blobs and broken tests -XTENSA_BROKEN_TESTS = crt vectors -XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS)) - -# add to the list of tests -TESTS += $(XTENSA_USABLE_TESTS) -VPATH += $(XTENSA_SRC) - -QEMU_OPTS+=-M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel - -INCLUDE_DIRS = $(SRC_PATH)/target/xtensa/core-$(CORE) -XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS)) - -vectors_ASFLAGS = -mtext-section-literals -ASFLAGS = -Wa,--no-absolute-literals -LDFLAGS = -Tlinker.ld -nostartfiles -nostdlib - -CRT = crt.o vectors.o -CLEANFILES += linker.ld - -linker.ld: linker.ld.S - $(CC) $(XTENSA_INC) -E -P $< -o $@ - -$(XTENSA_USABLE_TESTS): linker.ld macros.inc $(CRT) Makefile.softmmu-target - -# special rule for common blobs -%.o: %.S - $(CC) $(XTENSA_INC) $($*_ASFLAGS) $(ASFLAGS) $(EXTRA_CFLAGS) -c $< -o $@ - -%: %.S - $(CC) $(XTENSA_INC) $(ASFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT) - -endif - -# We don't currently support the multiarch system tests -undefine MULTIARCH_TESTS diff --git a/tests/tcg/xtensa/meson.build b/tests/tcg/xtensa/meson.build new file mode 100644 index 00000000000..339a9a1294e --- /dev/null +++ b/tests/tcg/xtensa/meson.build @@ -0,0 +1,96 @@ +tests_per_core = {} +cores = ['dc232b'] + +foreach core: cores + tests = [] + core_dir = meson.project_source_root() / 'target' / 'xtensa' / 'core-' + core + link_script_src = files('linker.ld.S')[0] + link_script = custom_target('xtensa_linker.ld.' + core, + command: [meson.get_compiler('c').cmd_array(), + '-E', '-P', '-I', core_dir, + '@INPUT@', + '-o', '@OUTPUT@'], + input: link_script_src, + output: 'xtensa_linker.ld' + core, + ) + crt = files('crt.S')[0] + vectors = files('vectors.S')[0] + cflags = ['-nostdlib', + '-nostartfiles', + '-mtext-section-literals', + crt, vectors, + '-I', core_dir, + '-Wa,--no-absolute-literals', + '-Wl,-T', link_script, + '-lgcc'] + qemu_args = ['-M', 'sim', '-cpu', core, + '-nographic', + '-semihosting', + '-kernel'] + setup = {'cflags': cflags, 'qemu_args': qemu_args} + + # Multi arch tests are not supported + # tests += tcg_tests['multiarch-softmmu']['tests'] + + tests += { + 'test_b.S': setup, + 'test_bi.S': setup, + 'test_boolean.S': setup, + 'test_break.S': setup, + 'test_bz.S': setup, + 'test_cache.S': setup, + 'test_clamps.S': setup, + 'test_dfp0_arith.S': setup, + 'test_exclusive.S': setup, + 'test_extui.S': setup, + 'test_flix.S': setup, + 'test_fp0_arith.S': setup, + 'test_fp0_conv.S': setup, + 'test_fp0_div.S': setup, + 'test_fp0_sqrt.S': setup, + 'test_fp1.S': setup, + 'test_fp_cpenable.S': setup, + 'test_interrupt.S': setup, + 'test_load_store.S': setup, + 'test_loop.S': setup, + 'test_lsc.S': setup, + 'test_mac16.S': setup, + 'test_max.S': setup, + 'test_min.S': setup, + 'test_mmu.S': setup, + 'test_mul16.S': setup, + 'test_mul32.S': setup, + 'test_nsa.S': setup, + 'test_phys_mem.S': setup, + 'test_quo.S': setup, + 'test_rem.S': setup, + 'test_rst0.S': setup, + 'test_s32c1i.S': setup, + 'test_sar.S': setup, + 'test_sext.S': setup, + 'test_shift.S': setup, + 'test_sr.S': setup, + # test_timer is time sensitive, use icount to control time + 'test_timer.S': setup + {'qemu_args': ['-icount', '8'] + qemu_args}, + 'test_windowed.S': setup, + } + + tests_per_core += {core: tests} +endforeach + +cc_dockerfile = 'debian-xtensa-cross' +cc_docker_host_arch = ['x86_64'] + +if 'qemu-system-xtensa' in emulators + tcg_tests += { + 'xtensa-softmmu': { + 'cc': 'xtensa-dc232b-elf-gcc', + 'cc_dockerfile': cc_dockerfile, + 'cc_docker_host_arch': cc_docker_host_arch, + 'folder': 'xtensa', + 'gdb_arch': 'xtensa', + 'qemu': emulators['qemu-system-xtensa'], + 'tests': tests_per_core['dc232b'], + } + } +endif diff --git a/tests/tcg/xtensaeb/Makefile.softmmu-target b/tests/tcg/xtensaeb/Makefile.softmmu-target index 95d0528c372..3df131acea7 100644 --- a/tests/tcg/xtensaeb/Makefile.softmmu-target +++ b/tests/tcg/xtensaeb/Makefile.softmmu-target @@ -2,4 +2,4 @@ # Xtensa system tests # -include $(SRC_PATH)/tests/tcg/xtensa/Makefile.softmmu-target +#include $(SRC_PATH)/tests/tcg/xtensa/Makefile.softmmu-target -- 2.43.0