From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
"Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>,
"Aniket Sahu" <asahu1x@linux.ibm.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>
Subject: [PULL 098/105] tests/tcg: remove remaining Makefiles
Date: Fri, 4 Sep 2026 13:45:52 +0100 [thread overview]
Message-ID: <20260904124604.2207440-99-alex.bennee@linaro.org> (raw)
In-Reply-To: <20260904124604.2207440-1-alex.bennee@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
tests/tcg/mips/user/ has extra tests that are not currently run at the
moment. Keep their Makefiles until they are implemented.
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Tested-by: Aniket Sahu <asahu1x@linux.ibm.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Message-ID: <20260827221506.91574-99-pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
diff --git a/configure b/configure
index 46cbcc085b3..cb5fdfed221 100755
--- a/configure
+++ b/configure
@@ -1749,15 +1749,6 @@ if test "$default_targets" = "yes"; then
echo "CONFIG_DEFAULT_TARGETS=y" >> $config_host_mak
fi
-# tests/tcg configuration
-mkdir -p tests/tcg
-echo "# Automatically generated by configure - do not modify" > tests/tcg/$config_host_mak
-echo "SRC_PATH=$source_path" >> tests/tcg/$config_host_mak
-if test "$plugins" = "yes" ; then
- echo "CONFIG_PLUGIN=y" >> tests/tcg/$config_host_mak
-fi
-echo "PYTHON=$python" >> tests/tcg/$config_host_mak
-
tcg_tests_with_compilers=
for target in $target_list; do
arch=${target%%-*}
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
deleted file mode 100644
index 836fccaca23..00000000000
--- a/tests/tcg/Makefile.target
+++ /dev/null
@@ -1,287 +0,0 @@
-# -*- Mode: makefile -*-
-#
-# TCG tests
-#
-# These are complicated by the fact we want to build them for guest
-# systems. This requires knowing what guests we are building and which
-# ones we have cross-compilers for or docker images with
-# cross-compilers.
-#
-# The tests themselves should be as minimal as possible as
-# cross-compilers don't always have a large amount of libraries
-# available.
-#
-# We only include the host build system for SRC_PATH and we don't
-# bother with the common rules.mk. We expect the following:
-#
-# CC - the C compiler command
-# EXTRA_CFLAGS - any extra CFLAGS
-# BUILD_STATIC - are we building static binaries
-#
-# By default all tests are statically compiled but some host systems
-# may not package static libraries by default. If an external
-# cross-compiler can only build dynamic libraries the user might need
-# to make extra efforts to ensure ld.so can link at runtime when the
-# tests are run.
-#
-# We also accept SPEED=slow to enable slower running tests
-#
-# We also expect to be in the tests build dir for the FOO-(linux-user|softmmu).
-#
-
-all:
--include ../config-host.mak
--include config-target.mak
-
-# Get semihosting definitions for user-mode emulation
-ifeq ($(filter %-softmmu, $(TARGET)),)
--include $(SRC_PATH)/configs/targets/$(TARGET).mak
-endif
-
-# for including , in command strings
-COMMA := ,
-NULL :=
-SPACE := $(NULL) #
-TARGET_PREFIX=tests/tcg/$(TARGET):$(SPACE)
-
-quiet-@ = $(if $(V),,@$(if $1,printf " %-7s %s\n" "$(strip $1)" "$(strip $2)" && ))
-quiet-command = $(call quiet-@,$2,$3)$1
-
-cc-test = $(CC) -Werror $1 -c -o /dev/null -xc /dev/null >/dev/null 2>&1
-cc-option = if $(call cc-test, $1); then \
- echo "$(TARGET_PREFIX)$1 detected" && echo "$(strip $2)=$(strip $1)" >&3; else \
- echo "$(TARGET_PREFIX)$1 not detected"; fi
-
-# $1 = test name, $2 = cmd, $3 = desc
-ifeq ($(filter %-softmmu, $(TARGET)),)
-run-test = $(call quiet-command, timeout -s KILL --foreground $(TIMEOUT) $2 > $1.out, \
- TEST,$(or $3, $*, $<) on $(TARGET_NAME))
-else
-run-test = $(call quiet-command, timeout -s KILL --foreground $(TIMEOUT) $2, \
- TEST,$(or $3, $*, $<) on $(TARGET_NAME))
-endif
-
-# $1 = test name, $2 = reference
-# to work around the pipe squashing the status we only pipe the result if
-# we know it failed and then force failure at the end.
-diff-out = $(call quiet-command, diff -q $1.out $2 || \
- (diff -u $1.out $2 | head -n 10 && false), \
- DIFF,$1.out with $2)
-
-# $1 = test name, $2 = reason
-skip-test = @printf " SKIPPED %s on $(TARGET_NAME) because %s\n" $1 $2
-
-# $1 = test name, $2 = reference
-# As above but only diff if reference file exists, otherwise the test
-# passes if it managed to complete with a status of zero
-conditional-diff-out = \
- $(if $(wildcard $2), \
- $(call diff-out,$1,$2), \
- $(call skip-test,"$1 check","no reference"))
-
-
-# Tests we are building
-TESTS=
-# additional tests which may re-use existing binaries
-EXTRA_TESTS=
-
-# Start with a blank slate, the build targets get to add stuff first
-CFLAGS=
-LDFLAGS=
-
-QEMU_OPTS=
-CHECK_PLUGIN_OUTPUT_COMMAND=
-
-
-# If TCG debugging, or TCI is enabled things are a lot slower
-# so we have to set our timeout for that. The current worst case
-# offender is the system memory test running under TCI.
-TIMEOUT=120
-
-ifeq ($(filter %-softmmu, $(TARGET)),)
-# The order we include is important. We include multiarch first and
-# then the target. If there are common tests shared between
-# sub-targets (e.g. ARM & AArch64) then it is up to
-# $(TARGET_NAME)/Makefile.target to include the common parent
-# architecture in its VPATH. However some targets are so minimal we
-# can't even build the multiarch tests.
-ifeq ($(wildcard $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target),)
-# skip user tests if Makefile.target is not present
-else ifneq ($(filter $(TARGET_NAME),aarch64_be),)
--include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target
-else
--include $(SRC_PATH)/tests/tcg/multiarch/Makefile.target
--include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.target
-endif
-
-# Add the common build options
-CFLAGS+=-Wall -Werror -O0 -g -fno-strict-aliasing
-ifeq ($(BUILD_STATIC),y)
-LDFLAGS+=-static
-endif
-
-%: %.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
-%: %.S
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wa,--noexecstack $< -o $@ $(LDFLAGS)
-else
-# For system targets we include a different Makefile fragment as the
-# build options for bare programs are usually pretty different. They
-# are expected to provide their own build recipes.
-EXTRA_CFLAGS += -ffreestanding -fno-stack-protector
-
-# We skip the multiarch tests if the target hasn't provided a boot.S
-MULTIARCH_SOFTMMU_TARGETS = i386 alpha aarch64 arm loongarch64 s390x x86_64
-
-ifneq ($(filter $(TARGET_NAME),$(MULTIARCH_SOFTMMU_TARGETS)),)
--include $(SRC_PATH)/tests/tcg/minilib/Makefile.target
--include $(SRC_PATH)/tests/tcg/multiarch/system/Makefile.softmmu-target
-endif
-ifeq ($(wildcard $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.softmmu-target),)
-# skip system tests if Makefile.target is not present
-else
--include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.softmmu-target
-endif
-
-endif
-
-all: $(TESTS) $(EXTRA_TESTS)
-
-#
-# Test Runners
-#
-# By default we just run the test with the appropriate QEMU for the
-# target. More advanced tests may want to override the runner in their
-# specific make rules. Additional runners for the same binary should
-# be added to EXTRA_RUNS.
-#
-
-RUN_TESTS=$(patsubst %,run-%, $(TESTS))
-
-# If plugins exist also include those in the tests
-ifeq ($(CONFIG_PLUGIN),y)
-PLUGIN_SRC=$(SRC_PATH)/tests/tcg/plugins
-PLUGIN_LIB=../plugins
-VPATH+=$(PLUGIN_LIB)
-# Some plugins need to be disabled for all tests to avoid exponential explosion.
-# For example, libpatch.so only needs to run against the arch-specific patch
-# target test, so we explicitly run it in the arch-specific Makefile.
-DISABLE_PLUGINS=libpatch.so
-
-# Likewise don't bother with the syscall plugin for softmmu
-ifneq ($(filter %-softmmu, $(TARGET)),)
-DISABLE_PLUGINS += libsyscall.so
-endif
-
-PLUGINS=$(filter-out $(DISABLE_PLUGINS), \
- $(patsubst %.c, lib%.so, $(notdir $(wildcard $(PLUGIN_SRC)/*.c))))
-
-strip-plugin = $(wordlist 1, 1, $(subst -with-, ,$1))
-extract-plugin = $(wordlist 2, 2, $(subst -with-, ,$1))
-extract-test = $(subst run-plugin-,,$(wordlist 1, 1, $(subst -with-, ,$1)))
-
-# We need to ensure expand the run-plugin-TEST-with-PLUGIN
-# pre-requistes manually here as we can't use stems to handle it. We
-# only expand MULTIARCH_TESTS which are common on most of our targets
-# and rotate the plugins so we don't grow too out of control as new
-# tests are added. Plugins that need to run with a specific test
-# should ensure they add their combination to EXTRA_RUNS.
-
-ifneq ($(MULTIARCH_TESTS),)
-
-# Extract extra tests from the extra test+plugin combination.
-EXTRA_TESTS_WITH_PLUGIN=$(foreach test, \
- $(EXTRA_RUNS_WITH_PLUGIN),$(call extract-test,$(test)))
-# Exclude tests that were specified to run with specific plugins from the tests
-# which can run with any plugin combination, so we don't run it twice.
-MULTIARCH_TESTS:=$(filter-out $(EXTRA_TESTS_WITH_PLUGIN), $(MULTIARCH_TESTS))
-
-NUM_PLUGINS := $(words $(PLUGINS))
-NUM_TESTS := $(words $(MULTIARCH_TESTS))
-
-define mod_plus_one
- $(shell $(PYTHON) -c "print( ($(1) % $(2)) + 1 )")
-endef
-
-# Rules for running tests with any plugin combination, i.e., no specific plugin.
-$(foreach _idx, $(shell seq 1 $(NUM_TESTS)), \
- $(eval _test := $(word $(_idx), $(MULTIARCH_TESTS))) \
- $(eval _plugin := $(word $(call mod_plus_one, $(_idx), $(NUM_PLUGINS)), $(PLUGINS))) \
- $(eval run-plugin-$(_test)-with-$(_plugin): $(_test) $(_plugin)) \
- $(eval RUN_TESTS+=run-plugin-$(_test)-with-$(_plugin)))
-
-# Rules for running extra tests with specific plugins.
-$(foreach f,$(EXTRA_RUNS_WITH_PLUGIN), \
- $(eval $(f): $(call extract-test,$(f)) $(call extract-plugin,$(f))))
-
-endif # MULTIARCH_TESTS
-endif # CONFIG_PLUGIN
-
-RUN_TESTS+=$(EXTRA_RUNS)
-RUN_TESTS+=$(EXTRA_RUNS_WITH_PLUGIN)
-
-# Some plugins need additional arguments above the default to fully
-# exercise things. We can define them on a per-test basis here.
-run-plugin-%-with-libmem.so: PLUGIN_ARGS=$(COMMA)inline=true
-
-ifeq ($(filter %-softmmu, $(TARGET)),)
-run-%: %
- $(call run-test, $<, env QEMU=$(QEMU) $(QEMU) $(QEMU_OPTS) $<)
-
-run-plugin-%:
- $(call run-test, $@, env QEMU=$(QEMU) $(QEMU) $(QEMU_OPTS) \
- -plugin $(PLUGIN_LIB)/$(call extract-plugin,$@)$(PLUGIN_ARGS) \
- -d plugin -D $*.pout \
- $(call strip-plugin,$<))
- $(if $(CHECK_PLUGIN_OUTPUT_COMMAND), \
- $(call quiet-command, $(CHECK_PLUGIN_OUTPUT_COMMAND) $*.pout, \
- TEST, check plugin $(call extract-plugin,$@) output \
- with $(call strip-plugin,$<)))
-else
-run-%: %
- $(call run-test, $<, \
- $(QEMU) -monitor none -display none \
- -chardev file$(COMMA)path=$<.out$(COMMA)id=output \
- $(QEMU_OPTS) $<)
-
-run-plugin-%:
- $(call run-test, $@, \
- $(QEMU) -monitor none -display none \
- -chardev file$(COMMA)path=$@.out$(COMMA)id=output \
- -plugin $(PLUGIN_LIB)/$(call extract-plugin,$@)$(PLUGIN_ARGS) \
- -d plugin -D $*.pout \
- $(QEMU_OPTS) $(call strip-plugin,$<))
- $(if $(CHECK_PLUGIN_OUTPUT_COMMAND), \
- $(call quiet-command, $(CHECK_PLUGIN_OUTPUT_COMMAND) $*.pout, \
- TEST, check plugin $(call extract-plugin,$@) output \
- with $(call strip-plugin,$<)))
-endif
-
-gdb-%: %
- gdb --args $(QEMU) $(QEMU_OPTS) $<
-
-# Filter tests based on TCG_TEST_FILTER if set
-ifdef TCG_TEST_FILTER
-FILTERED_RUN_TESTS=$(foreach test,$(RUN_TESTS),$(if $(findstring $(TCG_TEST_FILTER),$(test)),$(test)))
-else
-FILTERED_RUN_TESTS=$(RUN_TESTS)
-endif
-
-.PHONY: run
-run: $(FILTERED_RUN_TESTS)
-
-clean:
- rm -f $(TESTS) *.o $(CLEANFILES)
-
-distclean:
- rm -f config-cc.mak config-target.mak ../config-$(TARGET).mak
-
-.PHONY: help
-help:
- @echo "TCG tests help $(TARGET_NAME)"
- @echo "Built with $(CC)"
- @echo "Available tests:"
- @$(foreach t,$(RUN_TESTS),echo " $t";)
- @echo ""
- @echo "Environment variables:"
- @echo " TCG_TEST_FILTER=<pattern> Filter tests matching pattern"
diff --git a/tests/tcg/minilib/Makefile.target b/tests/tcg/minilib/Makefile.target
deleted file mode 100644
index af0bf54be98..00000000000
--- a/tests/tcg/minilib/Makefile.target
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# System test minilib objects
-#
-# The system tests are very constrained in terms of the library they
-# support but we are not savages. We provide a few helpful routines
-# that can be shared with the tests for basic I/O.
-#
-# They assume each arch has provided a putc function.
-#
-
-SYSTEM_MINILIB_SRC=$(SRC_PATH)/tests/tcg/minilib
-MINILIB_SRCS=$(wildcard $(SYSTEM_MINILIB_SRC)/*.c)
-MINILIB_OBJS=$(patsubst $(SYSTEM_MINILIB_SRC)/%.c, %.o, $(MINILIB_SRCS))
-
-MINILIB_CFLAGS+=-nostdlib -fno-stack-protector -ggdb -O0
-MINILIB_INC=-isystem $(SYSTEM_MINILIB_SRC)
-
-.PRECIOUS: $(MINILIB_OBJS)
-
-%.o: $(SYSTEM_MINILIB_SRC)/%.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@
diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
deleted file mode 100644
index 35050acedc9..00000000000
--- a/tests/tcg/multiarch/Makefile.target
+++ /dev/null
@@ -1,223 +0,0 @@
-# -*- Mode: makefile -*-
-#
-# Multiarch Tests - included from tests/tcg/Makefile.target
-#
-# These tests are plain C and built without any architecture specific code.
-#
-
-MULTIARCH_SRC=$(SRC_PATH)/tests/tcg/multiarch
-
-# Set search path for all sources
-VPATH += $(MULTIARCH_SRC)
-MULTIARCH_SRCS = $(notdir $(wildcard $(MULTIARCH_SRC)/*.c))
-ifeq ($(filter %-linux-user, $(TARGET)),$(TARGET))
-VPATH += $(MULTIARCH_SRC)/linux
-MULTIARCH_SRCS += $(notdir $(wildcard $(MULTIARCH_SRC)/linux/*.c))
-endif
-ifeq ($(CONFIG_PLUGIN),y)
-VPATH += $(MULTIARCH_SRC)/plugin
-MULTIARCH_SRCS += $(notdir $(wildcard $(MULTIARCH_SRC)/plugin/*.c))
-endif
-MULTIARCH_TESTS = $(MULTIARCH_SRCS:.c=)
-
-#
-# The following are any additional rules needed to build things
-#
-
-
-float_%: LDFLAGS+=-lm
-float_%: float_%.c libs/float_helpers.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< $(MULTIARCH_SRC)/libs/float_helpers.c -o $@ $(LDFLAGS)
-
-run-float_%: float_%
- $(call run-test,$<, $(QEMU) $(QEMU_OPTS) $<)
- $(call conditional-diff-out,$<,$(SRC_PATH)/tests/tcg/$(TARGET_NAME)/$<.ref)
-
-fnmsub: LDFLAGS+=-lm
-
-testthread: LDFLAGS+=-lpthread
-
-threadcount: LDFLAGS+=-lpthread
-
-signals: LDFLAGS+=-lrt -lpthread
-
-munmap-pthread: CFLAGS+=-pthread
-munmap-pthread: LDFLAGS+=-pthread
-
-vma-pthread: CFLAGS+=-pthread
-vma-pthread: LDFLAGS+=-pthread
-
-sigreturn-sigmask: CFLAGS+=-pthread
-sigreturn-sigmask: LDFLAGS+=-pthread
-
-tb-link: LDFLAGS+=-lpthread
-
-# GCC versions 12/13/14/15 at least incorrectly complain about
-# "'SHA1Transform' reading 64 bytes from a region of size 0"; see the gcc bug
-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106709
-# Since this is just a standard piece of library code we've borrowed for a
-# TCG test case, suppress the warning rather than trying to modify the
-# code to work around the compiler.
-sha1: CFLAGS+=-Wno-stringop-overread -Wno-unknown-warning-option
-
-run-test-mmap: test-mmap
- $(call run-test, test-mmap, $(QEMU) $<, $< (default))
-
-ifneq ($(GDB),)
-GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py
-
-run-gdbstub-sha1: sha1
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/sha1.py, \
- basic gdbstub support)
-
-run-gdbstub-qxfer-auxv-read: sha1
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/test-qxfer-auxv-read.py, \
- basic gdbstub qXfer:auxv:read support)
-
-run-gdbstub-qxfer-siginfo-read: segfault
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin "$< -s" --test $(MULTIARCH_SRC)/gdbstub/test-qxfer-siginfo-read.py, \
- basic gdbstub qXfer:siginfo:read support)
-
-run-gdbstub-proc-mappings: sha1
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/test-proc-mappings.py, \
- proc mappings support)
-
-run-gdbstub-thread-breakpoint: testthread
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/test-thread-breakpoint.py, \
- hitting a breakpoint on non-main thread)
-
-run-gdbstub-registers: sha512
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/registers.py, \
- checking register enumeration)
-
-# The prot-none test was skipped on gitlab due to missing gdb-multiarch,
-# however it seems to have bitrotten. Disable, it is tracked as
-# https://gitlab.com/qemu-project/qemu/-/issues/3329
-run-gdbstub-prot-none: prot-none
-ifneq ($(GITLAB_CI),)
- $(call skip-test, $<, "Broken on GitLab")
-else
- $(call run-test, $@, env PROT_NONE_PY=1 $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/prot-none.py, \
- accessing PROT_NONE memory)
-endif
-
-run-gdbstub-catch-syscalls: catch-syscalls
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/catch-syscalls.py, \
- hitting a syscall catchpoint)
-
-run-gdbstub-follow-fork-mode-child: follow-fork-mode
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/follow-fork-mode-child.py, \
- following children on fork)
-
-run-gdbstub-follow-fork-mode-parent: follow-fork-mode
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/follow-fork-mode-parent.py, \
- following parents on fork)
-
-run-gdbstub-late-attach: late-attach
- $(call run-test, $@, env LATE_ATTACH_PY=1 $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) --qargs "$(QEMU_OPTS)" --no-suspend \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/late-attach.py, \
- attaching to a running process)
-
-else
-run-gdbstub-%:
- $(call skip-test, "gdbstub test $*", "need working gdb with $(patsubst -%,,$(TARGET_NAME)) support")
-endif
-EXTRA_RUNS += run-gdbstub-sha1 run-gdbstub-qxfer-auxv-read \
- run-gdbstub-proc-mappings run-gdbstub-thread-breakpoint \
- run-gdbstub-registers run-gdbstub-prot-none \
- run-gdbstub-catch-syscalls run-gdbstub-follow-fork-mode-child \
- run-gdbstub-follow-fork-mode-parent \
- run-gdbstub-qxfer-siginfo-read run-gdbstub-late-attach
-
-# ARM Compatible Semi Hosting Tests
-#
-# Despite having ARM in the name we actually have several
-# architectures that implement it. We gate the tests on the feature
-# appearing in config.
-#
-ifeq ($(CONFIG_ARM_COMPATIBLE_SEMIHOSTING),y)
-VPATH += $(MULTIARCH_SRC)/arm-compat-semi
-
-# Add -I path back to TARGET_NAME for semicall.h
-semihosting: CFLAGS+=-I$(SRC_PATH)/tests/tcg/$(TARGET_NAME)
-
-run-semihosting: semihosting
- $(call run-test,$<,$(QEMU) $< 2> $<.err)
-
-run-plugin-semihosting-with-%:
- $(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
- -plugin $(PLUGIN_LIB)/$(call extract-plugin,$@) \
- $(call strip-plugin,$<) 2> $<.err, \
- $< with $*)
-
-semiconsole: CFLAGS+=-I$(SRC_PATH)/tests/tcg/$(TARGET_NAME)
-
-run-semiconsole: semiconsole
- $(call skip-test, $<, "MANUAL ONLY")
-
-run-plugin-semiconsole-with-%:
- $(call skip-test, $<, "MANUAL ONLY")
-
-TESTS += semihosting semiconsole
-endif
-
-test-plugin-mem-access: CFLAGS+=-pthread -O0
-test-plugin-mem-access: LDFLAGS+=-pthread -O0
-
-ifeq ($(CONFIG_PLUGIN),y)
-# Test plugin memory access instrumentation
-run-plugin-test-plugin-mem-access-with-libmem.so: \
- PLUGIN_ARGS=$(COMMA)print-accesses=true
-run-plugin-test-plugin-mem-access-with-libmem.so: \
- CHECK_PLUGIN_OUTPUT_COMMAND= \
- $(SRC_PATH)/tests/tcg/multiarch/plugin/regex-compare.sh $@.out
-run-plugin-test-plugin-syscall-filter-with-libsyscall.so:
-run-plugin-test-plugin-set-pc-with-libsetpc.so:
-
-EXTRA_RUNS_WITH_PLUGIN += run-plugin-test-plugin-mem-access-with-libmem.so \
- run-plugin-test-plugin-syscall-filter-with-libsyscall.so \
- run-plugin-test-plugin-set-pc-with-libsetpc.so
-
-else # CONFIG_PLUGIN=n
-# Do not build the syscall skipping test if it's not tested with the setpc
-# plugin because it will simply fail the test.
-MULTIARCH_TESTS := $(filter-out test-plugin-set-pc, $(MULTIARCH_TESTS))
-
-# test-plugin-syscall-filter needs syscall plugin to succeed
-test-plugin-syscall-filter: CFLAGS+=-DSKIP
-endif
-
-# Update TESTS
-TESTS += $(MULTIARCH_TESTS)
diff --git a/tests/tcg/multiarch/system/Makefile.softmmu-target b/tests/tcg/multiarch/system/Makefile.softmmu-target
deleted file mode 100644
index 98c4eda5e00..00000000000
--- a/tests/tcg/multiarch/system/Makefile.softmmu-target
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- Mode: makefile -*-
-#
-# Multiarch system tests
-#
-# We just collect the tests together here and rely on the actual guest
-# architecture to add to the test dependencies and deal with the
-# complications of building.
-#
-# To support the multiarch guests the target arch needs to provide a
-# boot.S that jumps to main and provides a __sys_outc functions.
-# Remember to update MULTIARCH_SOFTMMU_TARGETS in the tcg test
-# Makefile.target when this is done.
-#
-
-MULTIARCH_SRC=$(SRC_PATH)/tests/tcg/multiarch
-MULTIARCH_SYSTEM_SRC=$(MULTIARCH_SRC)/system
-VPATH+=$(MULTIARCH_SYSTEM_SRC)
-
-MULTIARCH_TEST_SRCS=$(wildcard $(MULTIARCH_SYSTEM_SRC)/*.c)
-MULTIARCH_TESTS = $(patsubst $(MULTIARCH_SYSTEM_SRC)/%.c, %, $(MULTIARCH_TEST_SRCS))
-
-ifneq ($(GDB),)
-GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py
-
-run-gdbstub-memory: memory
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) \
- --output $<.gdb.out \
- --qargs \
- "-monitor none -display none -chardev file$(COMMA)path=$<.out$(COMMA)id=output $(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/memory.py, \
- softmmu gdbstub support)
-run-gdbstub-interrupt: interrupt
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) \
- --output $<.gdb.out \
- --qargs \
- "-smp 2 -monitor none -display none -chardev file$(COMMA)path=$<.out$(COMMA)id=output $(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/interrupt.py, \
- softmmu gdbstub support)
-run-gdbstub-untimely-packet: hello
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --gdb-args "-ex 'set debug remote 1'" \
- --output untimely-packet.gdb.out \
- --stderr untimely-packet.gdb.err \
- --qemu $(QEMU) \
- --bin $< --qargs \
- "-monitor none -display none -chardev file$(COMMA)path=untimely-packet.out$(COMMA)id=output $(QEMU_OPTS)", \
- softmmu gdbstub untimely packets)
- $(call quiet-command, \
- (! grep -Fq 'Packet instead of Ack, ignoring it' untimely-packet.gdb.err), \
- "GREP", file untimely-packet.gdb.err)
-
-run-gdbstub-registers: memory
- $(call run-test, $@, $(GDB_SCRIPT) \
- --gdb $(GDB) \
- --qemu $(QEMU) \
- --output $<.registers.gdb.out \
- --qargs \
- "-monitor none -display none -chardev file$(COMMA)path=$<.out$(COMMA)id=output $(QEMU_OPTS)" \
- --bin $< --test $(MULTIARCH_SRC)/gdbstub/registers.py, \
- softmmu gdbstub support)
-else
-run-gdbstub-%:
- $(call skip-test, "gdbstub test $*", "need working gdb with $(patsubst -%,,$(TARGET_NAME)) support")
-endif
-
-MULTIARCH_RUNS += run-gdbstub-memory run-gdbstub-interrupt \
- run-gdbstub-untimely-packet run-gdbstub-registers
-
-ifeq ($(CONFIG_PLUGIN),y)
-# Test plugin memory access instrumentation
-run-plugin-memory-with-libmem.so: memory libmem.so
-run-plugin-memory-with-libmem.so: PLUGIN_ARGS=$(COMMA)region-summary=true
-run-plugin-memory-with-libmem.so: CHECK_PLUGIN_OUTPUT_COMMAND=$(MULTIARCH_SYSTEM_SRC)/validate-memory-counts.py $@.out
-
-EXTRA_RUNS_WITH_PLUGIN += run-plugin-memory-with-libmem.so
-endif
--
2.47.3
next prev parent reply other threads:[~2026-09-04 12:48 UTC|newest]
Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 12:44 [PULL 000/105] move check-tcg into the meson build Alex Bennée
2026-09-04 12:44 ` [PULL 001/105] tests/tcg/multiarch/system/memory.c: remove unused variable Alex Bennée
2026-09-04 12:44 ` [PULL 002/105] tests/tcg/multiarch/plugin/check-plugin-output.sh: take test output as input Alex Bennée
2026-09-04 12:44 ` [PULL 003/105] tests/tcg/multiarch/plugin: rename check-plugin-output to regex-compare Alex Bennée
2026-09-04 12:44 ` [PULL 004/105] meson: bump minimal version to 1.6.0 Alex Bennée
2026-09-04 12:44 ` [PULL 005/105] tests/tcg: introduce meson.build Alex Bennée
2026-09-04 12:44 ` [PULL 006/105] tests/tcg/meson.build: introduce exe_name Alex Bennée
2026-09-04 12:44 ` [PULL 007/105] tests/tcg/meson.build: introduce test_name Alex Bennée
2026-09-04 12:44 ` [PULL 008/105] tests/tcg/meson.build: introduce cflags Alex Bennée
2026-09-04 12:44 ` [PULL 009/105] tests/tcg/meson.build: introduce qemu_args Alex Bennée
2026-09-04 12:44 ` [PULL 010/105] tests/tcg/meson.build: introduce env_var Alex Bennée
2026-09-04 12:44 ` [PULL 011/105] tests/tcg/plugins: build list of test_plugins Alex Bennée
2026-09-04 12:44 ` [PULL 012/105] tests/tcg/meson.build: introduce plugin_test Alex Bennée
2026-09-04 12:44 ` [PULL 013/105] tests/tcg/meson.build: test gdb support and introduce gdb_arch Alex Bennée
2026-09-04 12:44 ` [PULL 014/105] tests/tcg/meson.build: introduce gdb_test Alex Bennée
2026-09-04 12:44 ` [PULL 015/105] tests/tcg/meson.build: introduce wrapper Alex Bennée
2026-09-04 12:44 ` [PULL 016/105] tests/tcg/meson.build: introduce expected_output Alex Bennée
2026-09-04 12:44 ` [PULL 017/105] tests/tcg/meson.build: add wrapper run_and_check_forbidden_output Alex Bennée
2026-09-04 12:44 ` [PULL 018/105] tests/tcg/meson.build: add wrapper run_with_input Alex Bennée
2026-09-04 12:44 ` [PULL 019/105] tests/tcg/meson.build: add wrapper record_replay Alex Bennée
2026-09-04 12:44 ` [PULL 020/105] tests/tcg/meson.build: add wrapper check_plugin_output Alex Bennée
2026-09-04 12:44 ` [PULL 021/105] tests/tcg/meson.build: add logic to skip tests Alex Bennée
2026-09-04 12:44 ` [PULL 022/105] tests/tcg/meson.build: introduce cc_feat and cc_feat_cflags Alex Bennée
2026-09-04 12:44 ` [PULL 023/105] tests/tcg/meson.build: introduce gdb_feat and gdb_feat_version Alex Bennée
2026-09-04 12:44 ` [PULL 024/105] tests/tcg/meson.build: move gdb_arch support check Alex Bennée
2026-09-04 12:44 ` [PULL 025/105] tests/tcg/meson.build: let test infrastructure detect compiler Alex Bennée
2026-09-04 12:44 ` [PULL 026/105] tests/docker/docker.py: return error code if probe fails Alex Bennée
2026-09-04 12:44 ` [PULL 027/105] tests/docker/docker.py: remove "Image is up to date" info Alex Bennée
2026-09-04 12:44 ` [PULL 028/105] tests/tcg/meson.build: introduce cc_dockerfile and cc_docker_host_arch Alex Bennée
2026-09-04 12:44 ` [PULL 029/105] tests/tcg/meson.build: check host cross cc is working Alex Bennée
2026-09-04 12:44 ` [PULL 030/105] tests/tcg/meson.build: introduce depends Alex Bennée
2026-09-04 12:44 ` [PULL 031/105] tests/tcg/meson.build: use full path for QEMU binary Alex Bennée
2026-09-04 12:44 ` [PULL 032/105] tests/tcg/meson.build: add top-level 'tcg-tests' target Alex Bennée
2026-09-04 12:44 ` [PULL 033/105] tests/tcg/Makefile: skip user/system tests if target Makefile is not present Alex Bennée
2026-09-04 12:44 ` [PULL 034/105] tests/tcg/multiarch/gdbstub/prot-none.py: deactivate on gitlab CI Alex Bennée
2026-09-04 12:44 ` [PULL 035/105] tests/tcg/multiarch/gdbstub/prot-none.py: detect if /proc/self/mem can be used to access PROT_NONE pages Alex Bennée
2026-09-04 12:44 ` [PULL 036/105] tests/tcg/multiarch: declare user tests Alex Bennée
2026-09-04 12:44 ` [PULL 037/105] tests/tcg/multiarch: declare system tests Alex Bennée
2026-09-04 12:44 ` [PULL 038/105] tests/tcg/meson.build: add generic plugin tests Alex Bennée
2026-09-04 12:44 ` [PULL 039/105] tests/tcg/arm/fcvt.c: use raw opcode for FPRCVT Alex Bennée
2026-09-04 12:44 ` [PULL 040/105] tests/tcg/aarch64: user tests Alex Bennée
2026-09-04 12:44 ` [PULL 041/105] tests/tcg/aarch64/system/gpc-test.c: remove unused variables Alex Bennée
2026-09-04 12:44 ` [PULL 042/105] tests/tcg/aarch64: system tests Alex Bennée
2026-09-04 12:44 ` [PULL 043/105] tests/tcg/aarch64_be: user tests Alex Bennée
2026-09-04 12:44 ` [PULL 044/105] tests/tcg/alpha: add float reference files Alex Bennée
2026-09-04 12:44 ` [PULL 045/105] tests/tcg/alpha: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 046/105] tests/tcg/alpha: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 047/105] tests/tcg/arm: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 048/105] tests/tcg/arm: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 049/105] tests/tcg/hexagon/overflow.c: add missing include Alex Bennée
2026-09-04 12:45 ` [PULL 050/105] tests/tcg/hexagon: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 051/105] tests/tcg/multiarch/sha1.c: fix big endian implementation Alex Bennée
2026-09-04 12:45 ` [PULL 052/105] tests/tcg/hppa: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 053/105] tests/tcg/hppa: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 054/105] tests/tcg/i386: add missing float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 055/105] tests/tcg/i386: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 056/105] tests/tcg/i386: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 057/105] tests/tcg/loongarch64: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 058/105] tests/tcg/loongarch64: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 059/105] tests/tcg/m68k: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 060/105] tests/tcg/m68k: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 061/105] scripts/probe-gdb-support.py: add mapping for mips architecture Alex Bennée
2026-09-04 12:45 ` [PULL 062/105] tests/tcg/mips: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 063/105] test/tcg/mips: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 064/105] tests/tcg/mips64: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 065/105] tests/tcg/mips64: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 066/105] tests/tcg/mips64el: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 067/105] tests/tcg/mips64el: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 068/105] tests/docker/dockerfiles/debian-all-test-cross.docker: add or1k toolchain Alex Bennée
2026-09-04 12:45 ` [PULL 069/105] tests/tcg/or1k/test_addic.c: remove unused variables Alex Bennée
2026-09-04 12:45 ` [PULL 070/105] tests/tcg/or1k/test_muli.c: remove set but unused variable Alex Bennée
2026-09-04 12:45 ` [PULL 071/105] tests/tcg/or1k: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 072/105] plugins/api.c: identify or1k pc register and mark it as read only Alex Bennée
2026-09-04 12:45 ` [PULL 073/105] tests/tcg/or1k: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 074/105] tests/tcg/ppc64: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 075/105] tests/tcg/ppc64: remove dependency on qemu/compiler.h Alex Bennée
2026-09-04 12:45 ` [PULL 076/105] tests/tcg/ppc64: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 077/105] tests/tcg/ppc64le: add missing float reference file Alex Bennée
2026-09-04 12:45 ` [PULL 078/105] tests/tcg/ppc64le: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 079/105] tests/tcg/riscv64: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 080/105] tests/tcg/riscv64: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 081/105] tests/tcg/riscv64: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 082/105] tests/tcg/s390x/head64.S: declare _exit symbol after main Alex Bennée
2026-09-04 12:45 ` [PULL 083/105] tests/tcg/s390x: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 084/105] tests/tcg/s390x: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 085/105] tests/tcg/s390x/console.c: directly implement memcpy and memset Alex Bennée
2026-09-04 12:45 ` [PULL 086/105] tests/tcg/s390x: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 087/105] tests/tcg/sh4: add float reference files Alex Bennée
2026-09-04 12:45 ` [PULL 088/105] tests/tcg/sh4: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 089/105] tests/tcg/tricore: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 090/105] tests/tcg/x86_64: add missing float reference file Alex Bennée
2026-09-04 12:45 ` [PULL 091/105] tests/tcg/x86_64: user tests Alex Bennée
2026-09-04 12:45 ` [PULL 092/105] tests/tcg/x86_64: system tests Alex Bennée
2026-09-24 18:18 ` Bernhard Beschow
2026-09-24 18:30 ` Pierrick Bouvier
2026-09-24 19:08 ` Pierrick Bouvier
2026-09-24 20:21 ` Pierrick Bouvier
2026-09-04 12:45 ` [PULL 093/105] tests/tcg/xtensa/crt.S: align .text section Alex Bennée
2026-09-04 12:45 ` [PULL 094/105] tests/docker/dockerfiles/debian-xtensa-cross.docker: add test_kc705_be toolchain for xtensaeb Alex Bennée
2026-09-04 12:45 ` [PULL 095/105] tests/tcg/xtensa: system tests Alex Bennée
2026-09-04 12:45 ` [PULL 096/105] tests/tcg/xtensa: xtensaeb " Alex Bennée
2026-09-04 12:45 ` [PULL 097/105] tests: remove tcg tests machinery Alex Bennée
2026-09-04 12:45 ` Alex Bennée [this message]
2026-09-04 12:45 ` [PULL 099/105] configure: directly pass gdb path as a meson option Alex Bennée
2026-09-04 12:45 ` [PULL 100/105] tests/tcg/meson.build: implement ./configure containers options Alex Bennée
2026-09-04 12:45 ` [PULL 101/105] tests/tcg/meson.build: implement ./configure -cross-cc-* options Alex Bennée
2026-09-07 12:55 ` Daniel P. Berrangé
2026-09-07 13:26 ` Alex Bennée
2026-09-07 13:46 ` Daniel P. Berrangé
2026-09-04 12:45 ` [PULL 102/105] configure: remove cross_cc and gdb detection logic Alex Bennée
2026-09-11 16:16 ` Eric Farman
2026-09-11 17:48 ` Alex Bennée
2026-09-11 18:22 ` Eric Farman
2026-09-14 4:57 ` Paolo Bonzini
2026-09-14 5:54 ` Pierrick Bouvier
2026-09-14 9:41 ` Paolo Bonzini
2026-09-14 11:17 ` Daniel P. Berrangé
2026-09-14 16:13 ` Pierrick Bouvier
2026-09-14 16:57 ` Paolo Bonzini
2026-09-14 17:16 ` Pierrick Bouvier
2026-09-14 17:34 ` Pierrick Bouvier
2026-09-15 5:01 ` Paolo Bonzini
2026-09-14 17:48 ` Alex Bennée
2026-09-14 18:04 ` Pierrick Bouvier
2026-09-14 18:09 ` Pierrick Bouvier
2026-09-14 18:13 ` Peter Maydell
2026-09-14 18:21 ` Pierrick Bouvier
2026-09-15 8:09 ` Richard Henderson
2026-09-15 16:07 ` Pierrick Bouvier
2026-09-15 12:30 ` Eric Farman
2026-09-15 15:12 ` Alex Bennée
2026-09-15 0:29 ` Pierrick Bouvier
2026-09-04 12:45 ` [PULL 103/105] meson.build: add summary for TCG tests Alex Bennée
2026-09-04 12:45 ` [PULL 104/105] docs/devel/testing/: update documentation Alex Bennée
2026-09-04 12:45 ` [PULL 105/105] MAINTAINERS: add maintainer for tcg/tests meson infrastructure Alex Bennée
2026-09-04 13:46 ` [PULL 000/105] move check-tcg into the meson build Philippe Mathieu-Daudé
2026-09-04 15:43 ` Alex Bennée
2026-09-04 15:57 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260904124604.2207440-99-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=asahu1x@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=philmd@oss.qualcomm.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.