ceph/qa
Ilya Dryomov 90b55cfdc2 librbd/migration/NBDStream: switch to NBD URIs
This removes the constraint on the transport being TCP, allowing to
use a Unix domain socket or other options.  It also allows specifying
export names which a) are needed in case of serving different content
on different exports and b) some servers may require regardless.

Additionally, NBD URIs are future proof as all that NBDStream needs to
do is forward the string to libnbd.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2024-09-06 14:14:12 +02:00
..
archs
btrfs
cephfs Merge PR #59309 into main 2024-08-30 17:53:31 +05:30
client
clusters qa: simplify postmerge construction 2024-08-05 21:07:24 -04:00
config Revert "qa/config/crimson_qa_overrides: adjust mgr_stats_period" 2024-07-18 05:27:11 +00:00
crontab qa/crontab: force priority for main rados nightlies 2024-08-05 17:56:39 -05:00
debug
distros qa/distros: reinstall nvme-cli on centos 9 nodes 2024-08-22 15:30:44 -04:00
erasure-code suites/ec-rados-plugin=jerasure-k=8-m=6-crush: roles set with overrides 2024-06-27 06:29:02 +00:00
libceph
machine_types
mds
mgr_ttl_cache
mon/bootstrap
mon_election qa: add missing terminating newline 2024-04-29 12:22:26 -04:00
msgr
nightlies
objectstore
objectstore_cephfs
objectstore_debug qa/bluestore: Add write_v1/v2 selection 2024-08-07 10:55:46 +00:00
overrides
packages
qa_scripts
rbd qa: cover a custom object size in krbd_discard_granularity.t 2024-08-09 18:00:40 +02:00
releases
rgw
rgw_bucket_sharding
rgw_frontend
rgw_pool_type
standalone Merge pull request #59433 from idryomov/wip-drop-xmlstarlet-variable 2024-08-27 08:53:38 +02:00
suites Merge PR #58547 into main 2024-08-30 11:03:26 +05:30
tasks Merge pull request #58543 from rishabh-d-dave/tracker-65808 2024-09-02 15:13:34 +05:30
timezone
workunits librbd/migration/NBDStream: switch to NBD URIs 2024-09-06 14:14:12 +02:00
.gitignore
.qa
CMakeLists.txt
find-used-ports.sh
loopall.sh
lsan.supp
Makefile
mypy.ini
README
run_xfstests_qemu.sh
run_xfstests-obsolete.sh
run_xfstests.sh
run-standalone.sh
runallonce.sh
runoncfuse.sh
runonkclient.sh
setup-chroot.sh
test_import.py
tox.ini
valgrind.supp qa: suppress __trans_list_add valgrind warning 2024-07-23 13:57:20 -04:00

ceph-qa-suite
-------------

clusters/    - some predefined cluster layouts
suites/      - set suite

The suites directory has a hierarchical collection of tests.  This can be
freeform, but generally follows the convention of

  suites/<test suite name>/<test group>/...

A test is described by a yaml fragment.

A test can exist as a single .yaml file in the directory tree.  For example:

 suites/foo/one.yaml
 suites/foo/two.yaml

is a simple group of two tests.

A directory with a magic '+' file represents a test that combines all
other items in the directory into a single yaml fragment.  For example:

 suites/foo/bar/+
 suites/foo/bar/a.yaml
 suites/foo/bar/b.yaml
 suites/foo/bar/c.yaml

is a single test consisting of a + b + c.

A directory with a magic '%' file represents a test matrix formed from
all other items in the directory.  For example,

 suites/baz/%
 suites/baz/a.yaml
 suites/baz/b/b1.yaml
 suites/baz/b/b2.yaml
 suites/baz/c.yaml
 suites/baz/d/d1.yaml
 suites/baz/d/d2.yaml

is a 4-dimensional test matrix.  Two dimensions (a, c) are trivial (1
item), so this is really 2x2 = 4 tests, which are

  a + b1 + c + d1
  a + b1 + c + d2
  a + b2 + c + d1
  a + b2 + c + d2

A directory with a magic '$' file, or a directory whose name ends with '$',
represents a test where one of the non-magic items is chosen randomly.  For
example, both

 suites/foo/$
 suites/foo/a.yaml
 suites/foo/b.yaml
 suites/foo/c.yaml

and

 suites/foo$/a.yaml
 suites/foo$/b.yaml
 suites/foo$/c.yaml

is a single test, either a, b or c.  This can be used in conjunction with the
'%' file in the same (see below) or other directories to run a series of tests
without causing an unwanted increase in the total number of jobs run.

Symlinks are okay.

One particular use of symlinks is to combine '%' and the latter form of '$'
feature.  Consider supported_distros directory containing fragments that define
os_type and os_version:

 supported_distros/%
 supported_distros/centos.yaml
 supported_distros/rhel.yaml
 supported_distros/ubuntu.yaml

A test that links supported_distros as distros (a name that doesn't end with
'$') will be run three times: on centos, rhel and ubuntu.  A test that links
supported_distros as distros$ will be run just once: either on centos, rhel or
ubuntu, chosen randomly.

The teuthology code can be found in https://github.com/ceph/teuthology.git