13b8593eeSMarkus Armbruster# -*- Mode: makefile -*- 2e45eaef9SFam Zheng 3e45eaef9SFam Zheng.PHONY: check-help 4e45eaef9SFam Zhengcheck-help: 5e45eaef9SFam Zheng @echo "Regression testing targets:" 69865f39dSHuacai Chen @echo " $(MAKE) check Run block, qapi-schema, unit, softfloat, qtest and decodetree tests" 78e19c009SPaolo Bonzini @echo " $(MAKE) bench Run speed tests" 854f96b45SCleber Rosa @echo 98e19c009SPaolo Bonzini @echo "Individual test suites:" 10b98a3baeSPhilippe Mathieu-Daudé @echo " $(MAKE) check-qtest-TARGET Run qtest tests for given target" 11b98a3baeSPhilippe Mathieu-Daudé @echo " $(MAKE) check-qtest Run qtest tests" 1214973778SThomas Huth @echo " $(MAKE) check-functional Run python-based functional tests" 1314973778SThomas Huth @echo " $(MAKE) check-functional-TARGET Run functional tests for a given target" 14b98a3baeSPhilippe Mathieu-Daudé @echo " $(MAKE) check-unit Run qobject tests" 15b98a3baeSPhilippe Mathieu-Daudé @echo " $(MAKE) check-qapi-schema Run QAPI schema tests" 16b98a3baeSPhilippe Mathieu-Daudé @echo " $(MAKE) check-block Run block tests" 1747e3424aSAlex Bennéeifneq ($(filter $(all-check-targets), check-softfloat),) 188ba0a820SAlex Bennée @echo " $(MAKE) check-tcg Run TCG tests" 1976170102SAlex Bennée @echo " $(MAKE) check-softfloat Run FPU emulation tests" 20ca6db469SPhilippe Mathieu-Daudéendif 2154f96b45SCleber Rosa @echo 22d426ff93SDario Faggioli @echo " $(MAKE) check-report.junit.xml Generates an aggregated XML test report" 2321313721SCleber Rosa @echo " $(MAKE) check-venv Creates a Python venv for tests" 2454f96b45SCleber Rosa @echo " $(MAKE) check-clean Clean the tests and related data" 25e45eaef9SFam Zheng @echo 26a6eeac3bSAlex Bennée @echo "The following are useful for CI builds" 276d4c8af3SPhilippe Mathieu-Daudé @echo " $(MAKE) check-build Build most test binaries" 284ec49f0fSCleber Rosa @echo 29e45eaef9SFam Zheng @echo 30e45eaef9SFam Zheng @echo "The variable SPEED can be set to control the gtester speed setting." 31b98a3baeSPhilippe Mathieu-Daudé @echo "Default options are -k and (for $(MAKE) V=1) --verbose; they can be" 32e45eaef9SFam Zheng @echo "changed with variable GTESTER_OPTIONS." 33e45eaef9SFam Zheng 34e45eaef9SFam Zhengifneq ($(wildcard config-host.mak),) 358959449bSKevin Wolfexport SRC_PATH 368959449bSKevin Wolf 37b93b63f5SPaolo BonziniSPEED = quick 38dbfe06c6SAnthony Liguori 39c401c058SAlex Bennée# Per guest TCG tests 405377a100SPaolo BonziniBUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TCG_TESTS_TARGETS)) 415377a100SPaolo BonziniCLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TCG_TESTS_TARGETS)) 426ffe8137SPaolo BonziniDISTCLEAN_TCG_TARGET_RULES=$(patsubst %,distclean-tcg-tests-%, $(TCG_TESTS_TARGETS)) 435377a100SPaolo BonziniRUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TCG_TESTS_TARGETS)) 448ba0a820SAlex Bennée 455377a100SPaolo Bonzini$(foreach TARGET,$(TCG_TESTS_TARGETS), \ 46f2d59351SPaolo Bonzini $(eval $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak: config-host.mak)) 471a7fab92SAlex Bennée 48eebf199cSPaolo Bonzini.PHONY: $(TCG_TESTS_TARGETS:%=build-tcg-tests-%) 49eebf199cSPaolo Bonzini$(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/tcg/config-%.mak 50eebf199cSPaolo Bonzini $(call quiet-command, \ 51d674342eSPaolo Bonzini $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS), \ 52eebf199cSPaolo Bonzini "BUILD","$* guest-tests") 538ba0a820SAlex Bennée 54eebf199cSPaolo Bonzini.PHONY: $(TCG_TESTS_TARGETS:%=run-tcg-tests-%) 5595808875SPaolo Bonzini$(TCG_TESTS_TARGETS:%=run-tcg-tests-%): run-tcg-tests-%: build-tcg-tests-% 56eebf199cSPaolo Bonzini $(call quiet-command, \ 57d674342eSPaolo Bonzini $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) SPEED=$(SPEED) run, \ 58eebf199cSPaolo Bonzini "RUN", "$* guest-tests") 598ba0a820SAlex Bennée 60eebf199cSPaolo Bonzini.PHONY: $(TCG_TESTS_TARGETS:%=clean-tcg-tests-%) 61eebf199cSPaolo Bonzini$(TCG_TESTS_TARGETS:%=clean-tcg-tests-%): clean-tcg-tests-%: 62eebf199cSPaolo Bonzini $(call quiet-command, \ 63d674342eSPaolo Bonzini $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) clean, \ 64eebf199cSPaolo Bonzini "CLEAN", "$* guest-tests") 658ba0a820SAlex Bennée 666ffe8137SPaolo Bonzini.PHONY: $(TCG_TESTS_TARGETS:%=distclean-tcg-tests-%) 676ffe8137SPaolo Bonzini$(TCG_TESTS_TARGETS:%=distclean-tcg-tests-%): distclean-tcg-tests-%: 686ffe8137SPaolo Bonzini $(call quiet-command, \ 696ffe8137SPaolo Bonzini $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) distclean, \ 706ffe8137SPaolo Bonzini "CLEAN", "$* guest-tests") 716ffe8137SPaolo Bonzini 728ba0a820SAlex Bennée.PHONY: build-tcg 738ba0a820SAlex Bennéebuild-tcg: $(BUILD_TCG_TARGET_RULES) 748ba0a820SAlex Bennée 758ba0a820SAlex Bennée.PHONY: check-tcg 76ce43e842SPaolo Bonzini.ninja-goals.check-tcg = all test-plugins 77df2bb38eSAlex Bennéecheck-tcg: $(RUN_TCG_TARGET_RULES) 788ba0a820SAlex Bennée 798ba0a820SAlex Bennée.PHONY: clean-tcg 808ba0a820SAlex Bennéeclean-tcg: $(CLEAN_TCG_TARGET_RULES) 81b8c6f29eSKevin Wolf 826ffe8137SPaolo Bonzini.PHONY: distclean-tcg 836ffe8137SPaolo Bonzinidistclean-tcg: $(DISTCLEAN_TCG_TARGET_RULES) 846ffe8137SPaolo Bonzini 8521313721SCleber Rosa# Python venv for running tests 8621313721SCleber Rosa 87*52e9ed6dSThomas Huth.PHONY: check-venv 8821313721SCleber Rosa 895377a100SPaolo Bonzini# Build up our target list from the filtered list of ninja targets 904408155aSPaolo BonziniTARGETS=$(patsubst libqemu-%.a, %, $(filter libqemu-%.a, $(ninja-targets))) 915377a100SPaolo Bonzini 92c03f57fdSPaolo BonziniTESTS_VENV_TOKEN=$(BUILD_DIR)/pyvenv/tests.group 9321313721SCleber Rosa 945a6f1199SJohn Snowquiet-venv-pip = $(quiet-@)$(call quiet-command-run, \ 95c03f57fdSPaolo Bonzini $(PYTHON) -m pip -q --disable-pip-version-check $1, \ 965a6f1199SJohn Snow "VENVPIP","$1") 975a6f1199SJohn Snow 98c03f57fdSPaolo Bonzini$(TESTS_VENV_TOKEN): $(SRC_PATH)/pythondeps.toml 990e7647aaSJohn Snow $(call quiet-venv-pip,install -e "$(SRC_PATH)/python/") 100*52e9ed6dSThomas Huth $(MKVENV_ENSUREGROUP) $< testdeps 10121313721SCleber Rosa $(call quiet-command, touch $@) 10221313721SCleber Rosa 103c03f57fdSPaolo Bonzinicheck-venv: $(TESTS_VENV_TOKEN) 10421313721SCleber Rosa 10514973778SThomas HuthFUNCTIONAL_TARGETS=$(patsubst %-softmmu,check-functional-%, $(filter %-softmmu,$(TARGETS))) 10614973778SThomas Huth.PHONY: $(FUNCTIONAL_TARGETS) 10714973778SThomas Huth$(FUNCTIONAL_TARGETS): 10814973778SThomas Huth @$(MAKE) SPEED=thorough $(subst -functional,-func,$@) 10914973778SThomas Huth 11014973778SThomas Huth.PHONY: check-functional 11114973778SThomas Huthcheck-functional: 112f57213f8SDaniel P. Berrangé @$(NINJA) precache-functional 113f57213f8SDaniel P. Berrangé @QEMU_TEST_NO_DOWNLOAD=1 $(MAKE) SPEED=thorough check-func check-func-quick 11414973778SThomas Huth 115b93b63f5SPaolo Bonzini# Consolidated targets 116b93b63f5SPaolo Bonzini 117*52e9ed6dSThomas Huth.PHONY: check check-clean 118e781190cSPaolo Bonzinicheck: 119e781190cSPaolo Bonzini 120097a5f19SPaolo Bonzinicheck-build: run-ninja 121a6eeac3bSAlex Bennée 1222cdfb123SWenchao Xiacheck-clean: 123*52e9ed6dSThomas Huth rm -rf $(BUILD_DIR)/tests/functional 1242cdfb123SWenchao Xia 125425d6abaSThomas Huthclean: check-clean clean-tcg 1266ffe8137SPaolo Bonzinidistclean: distclean-tcg 12714117c7bSEduardo Habkost 128e45eaef9SFam Zhengendif 129