mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
Acceptance tests: add make rule for running them
The acceptance (aka functional, aka Avocado-based) tests are Python files located in "tests/acceptance" that need to be run with the Avocado libs and test runner. Let's provide a convenient way for QEMU developers to run them, by making use of the tests-venv with the required setup. Also, while the Avocado test runner will take care of creating a location to save test results to, it was understood that it's better if the results are kept within the build tree. Signed-off-by: Cleber Rosa <crosa@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Message-Id: <20181018153134.8493-3-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
213137217a
commit
a56931eef3
3 changed files with 58 additions and 7 deletions
|
@ -11,6 +11,7 @@ check-help:
|
|||
@echo " $(MAKE) check-qapi-schema Run QAPI schema tests"
|
||||
@echo " $(MAKE) check-block Run block tests"
|
||||
@echo " $(MAKE) check-tcg Run TCG tests"
|
||||
@echo " $(MAKE) check-acceptance Run all acceptance (functional) tests"
|
||||
@echo " $(MAKE) check-report.html Generates an HTML test report"
|
||||
@echo " $(MAKE) check-venv Creates a Python venv for tests"
|
||||
@echo " $(MAKE) check-clean Clean the tests"
|
||||
|
@ -902,10 +903,15 @@ check-decodetree:
|
|||
|
||||
# Python venv for running tests
|
||||
|
||||
.PHONY: check-venv
|
||||
.PHONY: check-venv check-acceptance
|
||||
|
||||
TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
|
||||
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
|
||||
TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
|
||||
# Controls the output generated by Avocado when running tests.
|
||||
# Any number of command separated loggers are accepted. For more
|
||||
# information please refer to "avocado --help".
|
||||
AVOCADO_SHOW=none
|
||||
|
||||
$(shell $(PYTHON) -c 'import sys; assert sys.version_info >= (3,0)' >/dev/null 2>&1)
|
||||
ifeq ($(.SHELLSTATUS),0)
|
||||
|
@ -922,8 +928,19 @@ $(TESTS_VENV_DIR):
|
|||
$(error "venv directory for tests requires Python 3")
|
||||
endif
|
||||
|
||||
$(TESTS_RESULTS_DIR):
|
||||
$(call quiet-command, mkdir -p $@, \
|
||||
MKDIR, $@)
|
||||
|
||||
check-venv: $(TESTS_VENV_DIR)
|
||||
|
||||
check-acceptance: check-venv $(TESTS_RESULTS_DIR)
|
||||
$(call quiet-command, \
|
||||
$(TESTS_VENV_DIR)/bin/python -m avocado \
|
||||
--show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
|
||||
--failfast=on $(SRC_PATH)/tests/acceptance, \
|
||||
"AVOCADO", "tests/acceptance")
|
||||
|
||||
# Consolidated targets
|
||||
|
||||
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
|
||||
|
@ -937,7 +954,7 @@ check-clean:
|
|||
rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
|
||||
rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
|
||||
rm -f tests/test-qapi-gen-timestamp
|
||||
rm -rf $(TESTS_VENV_DIR)
|
||||
rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
|
||||
|
||||
clean: check-clean
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue