Support skip of platforms by version in tests. (#48826)

* Support skip of platforms by version in tests.

Previously a remote platform could be skipped completely using the alias:

`skip/{platform}` such as `skip/rhel`

Now a specific platform version can be skipped using the alias:

`skip/{platform}{version}` such as `skip/rhel7.6`

This feature is available for platforms specified with the `--remote` option.

* Add skip by version to the docs.

(cherry picked from commit 8066acc90c)
This commit is contained in:
Matt Clay 2018-11-16 16:38:47 -08:00 committed by Toshio Kuratomi
parent 0b410dc296
commit 7a0e86551d
2 changed files with 12 additions and 0 deletions

View file

@ -44,6 +44,11 @@ Aliases can be used to skip platforms using one of the following:
- ``skip/rhel`` - Skip tests on RHEL. - ``skip/rhel`` - Skip tests on RHEL.
- ``skip/docker`` - Skip tests when running on a Docker container - ``skip/docker`` - Skip tests when running on a Docker container
Platform versions, as specified using the ``--remote`` option with ``/`` removed, can also be skipped:
- ``skip/freebsd11.1`` - Skip tests on FreeBSD 11.1.
- ``skip/rhel7.6`` - Skip tests on RHEL 7.6.
Aliases can be used to skip Python major versions using one of the following: Aliases can be used to skip Python major versions using one of the following:
- ``skip/python2`` - Skip tests on Python 2.x. - ``skip/python2`` - Skip tests on Python 2.x.

View file

@ -1628,6 +1628,13 @@ def get_integration_remote_filter(args, targets):
display.warning('Excluding tests marked "%s" which are not supported on %s: %s' display.warning('Excluding tests marked "%s" which are not supported on %s: %s'
% (skip.rstrip('/'), platform, ', '.join(skipped))) % (skip.rstrip('/'), platform, ', '.join(skipped)))
skip = 'skip/%s/' % args.remote.replace('/', '')
skipped = [target.name for target in targets if skip in target.aliases]
if skipped:
exclude.append(skip)
display.warning('Excluding tests marked "%s" which are not supported on %s: %s'
% (skip.rstrip('/'), platform, ', '.join(skipped)))
python_version = 2 # remotes are expected to default to python 2 python_version = 2 # remotes are expected to default to python 2
skip = 'skip/python%d/' % python_version skip = 'skip/python%d/' % python_version