Re: [PATCH v6 047/103] tests/tcg/arm: system tests
Alex Bennée <[email protected]>
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Pierrick Bouvier <[email protected]> writes: > Signed-off-by: Pierrick Bouvier <[email protected]> > --- > tests/tcg/arm/Makefile.softmmu-target | 80 --------------------------- > tests/tcg/arm/meson.build | 2 + > tests/tcg/arm/system/meson.build | 66 ++++++++++++++++++++++ > 3 files changed, 68 insertions(+), 80 deletions(-) > delete mode 100644 tests/tcg/arm/Makefile.softmmu-target > create mode 100644 tests/tcg/arm/system/meson.build > > diff --git a/tests/tcg/arm/Makefile.softmmu-target b/tests/tcg/arm/Makefile.softmmu-target > deleted file mode 100644 > index b66074b0b43..00000000000 > --- a/tests/tcg/arm/Makefile.softmmu-target > +++ /dev/null > @@ -1,80 +0,0 @@ > -# -*- Mode: makefile -*- > -# > -# ARM SoftMMU tests - included from tests/tcg/Makefile > -# > - > -ARM_SRC=$(SRC_PATH)/tests/tcg/arm/system > - > -# Set search path for all sources > -VPATH += $(ARM_SRC) > - > -# Specific Test Rules > - > -test-armv6m-undef: test-armv6m-undef.S > - $(CC) -mcpu=cortex-m0 -mfloat-abi=soft \ > - -Wl,--build-id=none -x assembler-with-cpp \ > - $< -o $@ -nostdlib -static \ > - -T $(ARM_SRC)/[email protected] > - > -run-test-armv6m-undef: QEMU_OPTS=-semihosting-config enable=on,target=native,chardev=output -M microbit -kernel > - > -ARM_TESTS+=test-armv6m-undef > - > -# These objects provide the basic boot code and helper functions for all tests > -CRT_OBJS=boot.o > - > -ARM_TEST_SRCS=$(wildcard $(ARM_SRC)/*.c) > -ARM_TESTS+=$(patsubst $(ARM_SRC)/%.c, %, $(ARM_TEST_SRCS)) > - > -CRT_PATH=$(ARM_SRC) > -LINK_SCRIPT=$(ARM_SRC)/kernel.ld > -LDFLAGS=-Wl,-T$(LINK_SCRIPT) > -CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC) > -LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc > - > -# building head blobs > -.PRECIOUS: $(CRT_OBJS) > - > -%.o: $(ARM_SRC)/%.S > - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -Wa,--noexecstack -c $< -o $@ > - > -# Build and link the tests > -%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS) > - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) > - > -memory: CFLAGS+=-DCHECK_UNALIGNED=0 > - > -# Running > -QEMU_BASE_MACHINE=-M virt -cpu max -display none > -QEMU_OPTS+=$(QEMU_BASE_MACHINE) -semihosting-config enable=on,target=native,chardev=output -kernel > - > -# console test is manual only > -QEMU_SEMIHOST=-serial none -chardev stdio,mux=on,id=stdio0 -semihosting-config enable=on,chardev=stdio0 -mon chardev=stdio0,mode=readline > -run-semiconsole: QEMU_OPTS=$(QEMU_BASE_MACHINE) $(QEMU_SEMIHOST) -kernel > -run-semiconsole: semiconsole > - $(call skip-test, $<, "MANUAL ONLY") > - $(if $(V),@printf " %-7s %s %s\n" "TO RUN" $(notdir $(QEMU)) "$(QEMU_OPTS) $<") > -run-plugin-semiconsole-with-%: semiconsole > - $(call skip-test, $<, "MANUAL ONLY") > - > -# Simple Record/Replay Test > -.PHONY: memory-record > -run-memory-record: memory-record memory > - $(call run-test, $<, \ > - $(QEMU) -monitor none -display none \ > - -chardev file$(COMMA)path=$<.out$(COMMA)id=output \ > - -icount shift=5$(COMMA)rr=record$(COMMA)rrfile=record.bin \ > - $(QEMU_OPTS) memory) > - > -.PHONY: memory-replay > -run-memory-replay: memory-replay run-memory-record > - $(call run-test, $<, \ > - $(QEMU) -monitor none -display none \ > - -chardev file$(COMMA)path=$<.out$(COMMA)id=output \ > - -icount shift=5$(COMMA)rr=replay$(COMMA)rrfile=record.bin \ > - $(QEMU_OPTS) memory) > - > -EXTRA_RUNS+=run-memory-replay > - > -TESTS += $(ARM_TESTS) $(MULTIARCH_TESTS) > -EXTRA_RUNS+=$(MULTIARCH_RUNS) > diff --git a/tests/tcg/arm/meson.build b/tests/tcg/arm/meson.build > index 08a863699fb..1b491cea026 100644 > --- a/tests/tcg/arm/meson.build > +++ b/tests/tcg/arm/meson.build > @@ -2,6 +2,8 @@ cc = 'arm-linux-gnueabihf-gcc' > cc_dockerfile = 'debian-all-test-cross' > cc_docker_host_arch = ['aarch64', 'x86_64'] > > +subdir('system') > + > tests = [] > > # Multi arch tests > diff --git a/tests/tcg/arm/system/meson.build b/tests/tcg/arm/system/meson.build > new file mode 100644 > index 00000000000..d507cf980f6 > --- /dev/null > +++ b/tests/tcg/arm/system/meson.build > @@ -0,0 +1,66 @@ > +tests = [] > + > +minilib_dir = meson.current_source_dir() / '..' / '..' / 'minilib' > +minilib_printf = files(minilib_dir / 'printf.c')[0] > +link_script = files('kernel.ld')[0] > +boot = files('boot.S')[0] > +cflags = ['-nostdlib', > + '-Wa,--noexecstack', > + '-I', minilib_dir, minilib_printf, boot, > + '-Wl,-T', link_script, > + '-lgcc'] Needs to be: cflags = ['-march=armv7-a+fp', '-ffreestanding', '-nostdlib', ... > +qemu_base_args = ['-display', 'none', > + '-semihosting-config', 'enable=on', > + '-kernel'] > +qemu_def_args = ['-M', 'virt', '-cpu', 'max', qemu_base_args] > + > +# Multi arch tests > +multi_src = [] > +foreach t: tcg_tests['multiarch-softmmu']['tests'] > + foreach src, setup: t > + new_cflags = cflags > + if fs.stem(src) == 'memory' > + new_cflags += '-DCHECK_UNALIGNED=0' > + endif > + if src not in multi_src > + setup += {'cflags': [new_cflags]} > + multi_src += src > + endif > + tests += {src: setup + {'qemu_args': qemu_def_args}} > + endforeach > +endforeach > + > +tests += { > + 'test-armv6m-undef.S': { > + 'cflags': ['-mcpu=cortex-m0', '-mfloat-abi=soft', '-nostdlib', > + '-T', files('test-armv6m-undef.ld')], > + 'qemu_args': ['-M', 'microbit', qemu_base_args], > + }, > + 'semiconsole.c': { > + 'cflags': cflags, > + 'qemu_args': ['-serial', 'none', '-chardev', 'stdio,mux=on,id=stdio0', > + '-semihosting-config', 'enable=on,chardev=stdio0', > + '-mon', 'chardev=stdio0,mode=readline', > + qemu_def_args], > + 'wrapper': [prog_run_with_input, 'X'] > + }, > + '../../multiarch/system/memory.c': { > + 'test_name': 'memory-record-replay', > + 'qemu_args': qemu_def_args, > + 'wrapper': [prog_record_replay], > + }, > +} > + > +if 'qemu-system-arm' in emulators > + tcg_tests += { > + 'arm-softmmu': { > + 'cc': cc, > + 'cc_dockerfile': cc_dockerfile, > + 'cc_docker_host_arch': cc_docker_host_arch, > + 'folder': 'arm/system', > + 'gdb_arch': 'arm', > + 'qemu': emulators['qemu-system-arm'], > + 'tests': tests, > + } > + } > +endif -- Alex Bennée Virtualisation Tech Lead @ Linaro