From 5377a1000192ddfdb45d06877df7455009579f52 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 19 Apr 2022 10:10:11 +0100 Subject: tests/tcg: list test targets in Makefile.prereqs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Omit the rules altogether for targets that do not have a compiler. Makefile.qemu now is only invoked if the tests are actually built/run. Signed-off-by: Paolo Bonzini Message-Id: <20220401141326.1244422-14-pbonzini@redhat.com> Signed-off-by: Alex Bennée Reviewed-by: Richard Henderson Message-Id: <20220419091020.3008144-17-alex.bennee@linaro.org> --- tests/Makefile.include | 14 +++++++------- tests/tcg/Makefile.qemu | 11 ----------- tests/tcg/configure.sh | 17 ++++++++++++----- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/tests/Makefile.include b/tests/Makefile.include index b5d0d6b..091ca85 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -36,19 +36,16 @@ export SRC_PATH SPEED = quick -# Build up our target list from the filtered list of ninja targets -TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets))) - -include tests/tcg/Makefile.prereqs config-host.mak: $(SRC_PATH)/tests/tcg/configure.sh tests/tcg/Makefile.prereqs: config-host.mak # Per guest TCG tests -BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGETS)) -CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGETS)) -RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGETS)) +BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TCG_TESTS_TARGETS)) +CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TCG_TESTS_TARGETS)) +RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TCG_TESTS_TARGETS)) -$(foreach TARGET,$(TARGETS), \ +$(foreach TARGET,$(TCG_TESTS_TARGETS), \ $(eval $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak: config-host.mak)) $(BUILD_TCG_TARGET_RULES): build-tcg-tests-%: $(if $(CONFIG_PLUGIN),test-plugins) @@ -84,6 +81,9 @@ clean-tcg: $(CLEAN_TCG_TARGET_RULES) .PHONY: check-venv check-avocado check-acceptance check-acceptance-deprecated-warning +# Build up our target list from the filtered list of ninja targets +TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets))) + TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results diff --git a/tests/tcg/Makefile.qemu b/tests/tcg/Makefile.qemu index 84c8543..cda5e5a 100644 --- a/tests/tcg/Makefile.qemu +++ b/tests/tcg/Makefile.qemu @@ -95,7 +95,6 @@ all: .PHONY: guest-tests -ifneq ($(GUEST_BUILD),) guest-tests: $(GUEST_BUILD) run-guest-tests: guest-tests @@ -105,16 +104,6 @@ run-guest-tests: guest-tests SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run), \ "RUN", "tests for $(TARGET_NAME)") -else -guest-tests: - $(call quiet-command, true, "BUILD", \ - "$(TARGET) guest-tests SKIPPED") - -run-guest-tests: - $(call quiet-command, true, "RUN", \ - "tests for $(TARGET) SKIPPED") -endif - # It doesn't matter if these don't exits .PHONY: clean-guest-tests clean-guest-tests: diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh index 904c351..e51cd56 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -81,7 +81,9 @@ fi : ${cross_ld_tricore="tricore-ld"} makefile=tests/tcg/Makefile.prereqs -: > $makefile +echo "# Automatically generated by configure - do not modify" > $makefile + +tcg_tests_targets= for target in $target_list; do arch=${target%%-*} @@ -228,6 +230,7 @@ for target in $target_list; do echo "target=$target" >> $config_target_mak case $target in *-softmmu) + test -f $source_path/tests/tcg/$arch/Makefile.softmmu-target || continue qemu="qemu-system-$arch" ;; *-linux-user|*-bsd-user) @@ -235,11 +238,7 @@ for target in $target_list; do ;; esac - echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile - eval "target_compiler_cflags=\${cross_cc_cflags_$arch}" - echo "QEMU=$PWD/$qemu" >> $config_target_mak - echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak got_cross_cc=no @@ -362,8 +361,16 @@ for target in $target_list; do echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak ;; esac + got_cross_cc=yes break fi done fi + if test $got_cross_cc = yes; then + echo "QEMU=$PWD/$qemu" >> $config_target_mak + echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak + echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile + tcg_tests_targets="$tcg_tests_targets $target" + fi done +echo "TCG_TESTS_TARGETS=$tcg_tests_targets" >> $makefile -- cgit v1.1