Commit Graph

23 Commits

Author SHA1 Message Date
Sage Weil
282932867a remove ceph_test_rados_watch_notify
This is an old test, we have good watch/notify coverage in the newer
tests, and it is buggy.

Fixes: https://tracker.ceph.com/issues/43861
Signed-off-by: Sage Weil <sage@redhat.com>
2020-03-18 17:45:17 -05:00
Kefu Chai
3730d10623 librados: move C++ APIs into libradospp
the goal is to decouple C++ API from C API, and to version them
differently, as they are targeting different consumers.

this allows us to change the C++ API and bumping up its soversion
without requiring consumer to recompile the librados client for
using the new librados. in this way, C++ API can move faster than
C API. for example, if bufferlist interface is changed for better
performance, and this breaks existing API/ABI, we can bump up
the C++ library's soversion, and and the C library's version unchanged
but ship the new librados's C binding. so the librados client linked
against librados's C library will be able to take advantage of
the improvement in C++ library. while the librados client
linked against C++ library won't break at runtime due to unresolved
symbol or changed structure layout.

this is massive change, the genereal idea is to

* split librados.cc into two source files: librados_c.cc and
  librados_cxx.cc, the former for implementing C APIs, the later
  for C++ APIs.
* extract the C++ API in librados into librados-cxx, the library
  name will be libradospp. but we can change it before nautilus
  is released.
* link these librados libraries with static libraries which it
  depends on, so "-Wl,--exclude-libs,ALL" link flags can help
  hide the non-public symbols.
* extract the tests exercising librados' C++ API into a different
  source file named *_cxx.cc. for instance, to move the C++ tests
  in aio.cc into aio_cxx.cc
* extract the shared helper functions which do not use any librados
  or librados-cxx APIs into test_shared{.cc,h}. the "shared" here
  means, *shared* by C++ and C tests.
* extract the test fixtures, i.e., the subclasses of testing::Test,
  for testing C++ APIs into testcase_cxx.cc.
* update qa/workunits/rados/test.sh accordingly to add the splitted
  tests
* update the consumers of librados to link against librados-cxx
  instead, if they are using the C++ API.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-11-02 00:15:30 +08:00
Sage Weil
c894d528c2 qa/workunits/rados/test.sh: ensure tee output is valid filename
In the future we'll add --gtest_filter bits to the items, which confuse
tee.

Signed-off-by: Sage Weil <sage@redhat.com>
2018-04-18 14:38:26 -05:00
Casey Bodley
f473d57013 librados: add async interfaces for use with Networking TS
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>
2018-01-09 09:58:18 -05:00
Alan Somers
3aae5ca6fd scripts: fix bash path in shebangs
/bin/bash is a Linuxism.  Other operating systems install bash to
different paths.  Use /usr/bin/env in shebangs to find bash.

Signed-off-by: Alan Somers <asomers@gmail.com>
2017-07-27 13:24:26 -06:00
Sage Weil
aabe0e35a0 librados: allow service registrations
Signed-off-by: Sage Weil <sage@redhat.com>
2017-07-09 14:09:04 -04:00
Kefu Chai
787f6ac699 qa/workunits/rados/test.sh: print test name when it fails
we have

2017-02-04T16:15:46.090 INFO:tasks.workunit.client.0.mira032.stdout:error in 22088
2017-02-04T16:15:46.092 INFO:tasks.workunit.client.0.mira032.stderr:bash: line 1: 22092 Alarm clock             ceph_test_rados_api_aio 2>&1
2017-02-04T16:15:46.096 INFO:tasks.workunit.client.0.mira032.stderr:     22093 Done                    | tee ceph_test_rados_api_aio.log
2017-02-04T16:15:46.099 INFO:tasks.workunit.client.0.mira032.stderr:     22094 Done                    | sed "s/^/                  api_aio: /"
2017-02-04T16:15:46.102 INFO:tasks.workunit.client.0.mira032.stderr:+

if a unittest in rados/test.sh fails in teuthology.log, but it would
be desirable to have the failed test name in the line of "error in
22088".

Signed-off-by: Kefu Chai <kchai@redhat.com>
2017-02-10 23:54:29 +08:00
Kefu Chai
53af28db6e test: remove ceph_test_rados_api_tmap_migrate
see also: http://tracker.ceph.com/issues/16144

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-12 16:08:09 +08:00
Samuel Just
926f8ed77b qa/workunits/rados/test.sh: check subprocess return values
Fixes: #15165
Signed-off-by: Samuel Just <sjust@redhat.com>
2016-03-22 11:23:48 -07:00
Sage Weil
22fe493268 qa/workunits/rados/test.sh: test tmap_migrate
Signed-off-by: Sage Weil <sage@redhat.com>
2016-03-15 08:38:05 -04:00
Sage Weil
bd6c64da23 qa/workunits/rados/test.sh: capture stderr too
Signed-off-by: Sage Weil <sage@redhat.com>
2016-03-09 13:37:10 -05:00
Sage Weil
93413b5f4f qa/workunits/rados/test.sh: bash
Signed-off-by: Sage Weil <sage@redhat.com>
2016-02-02 17:45:55 -05:00
Sage Weil
0819509c32 qa/workunits/rados/test.sh: run tests in parallel by default
Faster!  8 min vs the original 21 min on my vstart cluster.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-02-01 11:26:00 -05:00
Josh Durgin
4b229f71ca qa: add librados c object operations tests to librados test script
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2014-02-18 12:34:33 -08:00
Sage Weil
a0cfbfd742 librados: create new ceph_test_rados_api_tier target
Move the dirty/undirty test to it, and add one for HitSets.

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Farnum <greg@inktank.com>
2013-12-06 14:37:27 -08:00
Dan Mick
3ac6ffe802 Merge branch 'wip-ceph-cli' into master
Conflicts:
	src/include/rados/librados.h
	src/librados/librados.cc
	src/osdc/Objecter.cc
	src/pybind/rados.py

Required modifications to:
	src/osd/OSD.cc

Signed-off-by: Dan Mick <dan.mick@inktank.com>
2013-06-06 20:08:15 -07:00
Josh Durgin
5a53da3c16 ceph-test: add ceph_test_rados_api_lock to packaging and qa
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-06-05 12:58:44 -07:00
Sage Weil
e830de58c1 librados: unit tests for mon_command
Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-21 16:23:43 -07:00
Josh Durgin
2b7deeea2e qa: output rados test names as they run
So we don't have to figure out which test is running from the output,
which can be difficult with the system tests.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-02-25 14:09:44 -08:00
Danny Al-Gaaf
7b89ee666b ceph-test: give binaries from ceph-test package useful names
The files from the ceph-test subpackage are installed to /usr/bin,
give them more useful names to make sure that the user know they
belong to ceph. add a 'ceph_' prefix and change some test* binaries
to ceph_test_*.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
2013-02-10 18:33:56 +01:00
Sage Weil
8791db7453 qa: run multiprocess rados tests
These now pass, except for the watch/notify one.

Signed-off-by: Sage Weil <sage@inktank.com>
2012-10-16 17:52:26 -07:00
Colin Patrick McCabe
184c2f5d98 qa/workunits/rados/test.sh:explicitly invoke tests
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
2011-08-17 12:41:15 -07:00
Colin Patrick McCabe
930bd329e7 Add qa/workunits/rados/test.sh
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
2011-08-17 12:35:39 -07:00