OpenStack Testing (Tempest) of an existing cloud
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Balazs Gibizer dfb304355b Introduce @serial test execution decorator
Tempest provides a LockFixture to avoid two potentially interfering
tests to run in parallel. However, this solution does not scale when
we want to separate a set of tests from many other test cases. For
example, host aggregate and availability zone testing needs compute
hosts without any nova servers to be able to test moving computes
between aggregates but a lot of other tests are creating nova
servers. To fully separate these aggregate tests from the rest of
the tempest test cases, this patch proposes a @serial class decorator
to mark a test class to be run totally independently of any other test

Under the hood, the @serial decorator is implemented with a tempest-wide
interprocess read-write lock. The serial test classes always take the
write lock, while the non-serial classes take the read lock. The lock
allows in many readers OR a single writer. So the serial tests are run
independently from the rest.

To minimize the time a serial test blocks other tempest tests run in
parallel, this patch also introduced a serial_tests test directory to
store the serial tests. The current test ordering in a fresh env
uses alphabetical order so the serial tests will run at the end of
the execution not randomly in the middle. The gate uses fresh VMs
for every run so we can rely on this optimization there. In local
envs where tests are re-run, the subsequent runs will be ordered at
runtime by stestr. Therfore, a longer runtime might be observed due to
locking, but the correctness of the test execution is still kept.

Related-Bug: #821732
Change-Id: I0181517edab75f586464a38c4811417f888783b1
4 months ago
doc Introduce @serial test execution decorator 4 months ago
etc Merge "Inclusive jargon" 2 years ago
playbooks Add support for ecdsa keys 1 year ago
releasenotes Add release notes page for version 33.0.0 5 months ago
roles Remove references to 'all-plugin' tox environment 8 months ago
tempest Introduce @serial test execution decorator 4 months ago
tools Add LUKS v2 tests 11 months ago
zuul.d Merge "zuul: Increase timeout for c9s-fips job" 5 months ago
.coveragerc Remove the NegativeAutoTest Framework 7 years ago
.gitignore Add index page for plugins documents 3 years ago
.gitreview OpenDev Migration Patch 4 years ago
.mailmap Update .mailmap for ghanshyam emails 5 years ago
.stestr.conf Switch Tempest CLI commands from testrepository to stestr 5 years ago
CONTRIBUTING.rst [ussuri][goal] Update contributor documentation 3 years ago
HACKING.rst Introduce @serial test execution decorator 4 months ago
LICENSE Add License to Tempest. 11 years ago
README.rst Add PDF building 4 years ago
REVIEWING.rst Change Review merge policy from two +2 to single +2 requirement 2 years ago
bindep.txt Add py310 job in gate 1 year ago
requirements.txt Introduce @serial test execution decorator 4 months ago
setup.cfg Fix python classifier for py39 6 months ago [ussuri][goal] Drop python 2.7 support and testing 3 years ago
test-requirements.txt Use unittest.mock instead of third party mock 3 years ago
tox.ini Introduce @serial test execution decorator 4 months ago


Team and repository tags


Tempest - The OpenStack Integration Test Suite

This is a set of integration tests to be run against a live OpenStack cluster. Tempest has batteries of tests for OpenStack API validation, scenarios, and other specific tests useful in validating an OpenStack deployment.

Get in touch via email. Use [tempest] in your subject.