Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / test / test_striper.cc
1 #include "gtest/gtest.h"
2 #include "global/global_context.h"
3
4 #include "osdc/Striper.h"
5
6 TEST(Striper, Stripe1)
7 {
8   file_layout_t l;
9
10   l.object_size = 262144;
11   l.stripe_unit = 4096;
12   l.stripe_count = 3;
13
14   vector<ObjectExtent> ex;
15   Striper::file_to_extents(g_ceph_context, 1, &l, 5006035, 46419, 5006035, ex);
16
17   cout << "result " << ex << std::endl;
18
19   ASSERT_EQ(3u, ex.size());
20   ASSERT_EQ(98304u, ex[0].truncate_size);
21   ASSERT_EQ(ex[1].offset, ex[1].truncate_size);
22   ASSERT_EQ(94208u, ex[2].truncate_size);
23 }
24
25 TEST(Striper, EmptyPartialResult)
26 {
27   file_layout_t l;
28
29   l.object_size = 4194304;
30   l.stripe_unit = 4194304;
31   l.stripe_count = 1;
32
33   vector<ObjectExtent> ex;
34   Striper::file_to_extents(g_ceph_context, 1, &l, 725549056, 131072, 72554905600, ex);
35   cout << "ex " << ex << std::endl;
36   ASSERT_EQ(2u, ex.size());
37
38   Striper::StripedReadResult r;
39
40   bufferlist bl;
41   r.add_partial_result(g_ceph_context, bl, ex[1].buffer_extents);
42
43   bufferptr bp(65536);
44   bp.zero();
45   bl.append(bp);
46
47   r.add_partial_result(g_ceph_context, bl, ex[0].buffer_extents);
48
49   bufferlist outbl;
50   r.assemble_result(g_ceph_context, outbl, false);
51
52   ASSERT_EQ(65536u, outbl.length());
53 }
54
55 TEST(Striper, GetNumObj)
56 {
57   file_layout_t l;
58
59   l.object_size = 262144;
60   l.stripe_unit = 4096;
61   l.stripe_count = 3;
62   uint64_t size,numobjs;
63   size = 6999;
64   numobjs = Striper::get_num_objects(l, size);
65   ASSERT_EQ(2u, numobjs);
66   size = 793320;
67   numobjs = Striper::get_num_objects(l, size);
68   ASSERT_EQ(5u, numobjs);
69   size = 805608;
70   numobjs = Striper::get_num_objects(l, size);
71   ASSERT_EQ(6u, numobjs);
72 }