Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / test / librbd / test_support.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3 #include "include/int_types.h"
4 #include "include/rados/librados.h"
5 #include "include/rbd/librbd.hpp"
6 #include <string>
7
8 static const uint64_t IMAGE_STRIPE_UNIT = 65536;
9 static const uint64_t IMAGE_STRIPE_COUNT = 16;
10
11 #define TEST_IO_SIZE 512
12 #define TEST_IO_TO_SNAP_SIZE 80
13
14 bool get_features(uint64_t *features);
15 bool is_feature_enabled(uint64_t feature);
16 int create_image_pp(librbd::RBD &rbd, librados::IoCtx &ioctx,
17                     const std::string &name, uint64_t size);
18 int create_image_full_pp(librbd::RBD &rbd, librados::IoCtx &ioctx,
19                          const std::string &name, uint64_t size,
20                          uint64_t features, bool old_format, int *order);
21 int clone_image_pp(librbd::RBD &rbd, librbd::Image &p_image, librados::IoCtx &p_ioctx,
22                    const char *p_name, const char *p_snap_name, librados::IoCtx &c_ioctx,
23                    const char *c_name, uint64_t features);
24 int get_image_id(librbd::Image &image, std::string *image_id);
25 int create_image_data_pool(librados::Rados &rados, std::string &data_pool, bool *created);
26
27 #define REQUIRE(x) {                      \
28   if (!(x)) {                             \
29     std::cout << "SKIPPING" << std::endl; \
30     return SUCCEED();                     \
31   }                                       \
32 }
33
34 #define REQUIRE_FEATURE(feature) REQUIRE(is_feature_enabled(feature))
35 #define REQUIRE_FORMAT_V1() REQUIRE(!is_feature_enabled(0))
36 #define REQUIRE_FORMAT_V2() REQUIRE_FEATURE(0)