tests/acceptance: use "arch:" tag to filter target specific tests

Currently, some tests contains target architecture information, in the
form of a "x86_64" tag.  But that tag is not respected in the default
execution, that is, "make check-acceptance" doesn't do anything with
it.

That said, even the target architecture handling currently present in
the "avocado_qemu.Test" class is pretty limited.  For instance, by
default, it chooses a target based on the host architecture.

Because the original implementation of the tags feature in Avocado did
not include any time of namespace or "key:val" mechanism, no tag has
relation to another tag.  The new implementation of the tags feature
from version 67.0 onwards, allows "key:val" tags, and because of that,
a test can be classified with a tag in a given key.  For instance, the
new proposed version of the "boot_linux_console.py" test, which
downloads and attempts to run a x86_64 kernel, is now tagged as:

  🥑 tags=arch:x86_64

This means that it can be filtered (out) when no x86_64 target is
available.  At the same time, tests that don't have a "arch:" tag,
will not be filtered out.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20190312171824.5134-6-crosa@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
Cleber Rosa 2019-03-12 13:18:09 -04:00 committed by Eduardo Habkost
parent 2c44d68f2b
commit b194713f94
4 changed files with 6 additions and 3 deletions

View file

@ -1134,6 +1134,7 @@ TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
# Any number of command separated loggers are accepted. For more # Any number of command separated loggers are accepted. For more
# information please refer to "avocado --help". # information please refer to "avocado --help".
AVOCADO_SHOW=app AVOCADO_SHOW=app
AVOCADO_TAGS=$(patsubst %-softmmu,-t arch:%, $(filter %-softmmu,$(TARGET_DIRS)))
ifneq ($(findstring v2,"v$(PYTHON_VERSION)"),v2) ifneq ($(findstring v2,"v$(PYTHON_VERSION)"),v2)
$(TESTS_VENV_DIR): $(TESTS_VENV_REQ) $(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
@ -1159,6 +1160,8 @@ check-acceptance: check-venv $(TESTS_RESULTS_DIR)
$(call quiet-command, \ $(call quiet-command, \
$(TESTS_VENV_DIR)/bin/python -m avocado \ $(TESTS_VENV_DIR)/bin/python -m avocado \
--show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \ --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
--filter-by-tags-include-empty --filter-by-tags-include-empty-key \
$(AVOCADO_TAGS) \
--failfast=on $(SRC_PATH)/tests/acceptance, \ --failfast=on $(SRC_PATH)/tests/acceptance, \
"AVOCADO", "tests/acceptance") "AVOCADO", "tests/acceptance")

View file

@ -18,7 +18,7 @@ class BootLinuxConsole(Test):
Boots a x86_64 Linux kernel and checks that the console is operational Boots a x86_64 Linux kernel and checks that the console is operational
and the kernel command line is properly passed from QEMU to the kernel and the kernel command line is properly passed from QEMU to the kernel
:avocado: tags=x86_64 :avocado: tags=arch:x86_64
""" """
timeout = 60 timeout = 60

View file

@ -19,7 +19,7 @@ class LinuxInitrd(Test):
""" """
Checks QEMU evaluates correctly the initrd file passed as -initrd option. Checks QEMU evaluates correctly the initrd file passed as -initrd option.
:avocado: tags=x86_64 :avocado: tags=arch:x86_64
""" """
timeout = 300 timeout = 300

View file

@ -61,7 +61,7 @@ class VirtioVersionCheck(Test):
same device tree created by `disable-modern` and same device tree created by `disable-modern` and
`disable-legacy`. `disable-legacy`.
:avocado: tags=x86_64 :avocado: tags=arch:x86_64
""" """
# just in case there are failures, show larger diff: # just in case there are failures, show larger diff: