mirror of https://github.com/ceph/ceph
f473d57013
Defines asynchronous librados operations that satisfy all of the "Requirements on asynchronous operations" imposed by the C++ Networking TS [1] in section 13.2.7. These operations are implemented in terms of boost::asio, but the interfaces themselves are free of boost types - this makes the transition to std::net trivial when it's available. These interfaces conform to the Extensible Asynchronous Model [2] that originated in boost::asio. This model allows the last 'handler' argument to either be a callback that gets the result, a coroutine yield_context that will suspend until completion, or a 'use_future' tag to request the result in a std::future (see the unit tests for examples of each). The 'Extensible' part also enables further integration with new frameworks. For now, only async_read(), async_write(), and the read/write variants of async_operate() are provided. [1] Working Draft, C++ Extensions for Networking http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4711.pdf [2] "Library Foundations for Asynchronous Operations" http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3896.pdf Signed-off-by: Casey Bodley <cbodley@redhat.com> |
||
---|---|---|
.. | ||
archs | ||
btrfs | ||
cephfs | ||
client | ||
clusters | ||
config | ||
debug | ||
distros | ||
erasure-code | ||
libceph | ||
machine_types | ||
mds | ||
mon/bootstrap | ||
mon_kv_backend | ||
nightlies | ||
objectstore | ||
objectstore_cephfs | ||
overrides | ||
packages | ||
qa_scripts | ||
rbd | ||
releases | ||
rgw_frontend | ||
rgw_pool_type | ||
standalone | ||
suites | ||
tasks | ||
timezone | ||
workunits | ||
.gitignore | ||
Makefile | ||
README | ||
find-used-ports.sh | ||
loopall.sh | ||
run-standalone.sh | ||
run_xfstests-obsolete.sh | ||
run_xfstests.sh | ||
run_xfstests_qemu.sh | ||
runallonce.sh | ||
runoncfuse.sh | ||
runonkclient.sh | ||
setup-chroot.sh | ||
tox.ini |
README
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 Symlinks are okay. The teuthology code can be found in https://github.com/ceph/teuthology.git