]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/test_striper.cc
1 #include "gtest/gtest.h"
2 #include "global/global_context.h"
4 #include "osdc/Striper.h"
12 l
.object_size
= 262144;
16 vector
<ObjectExtent
> ex
;
17 Striper::file_to_extents(g_ceph_context
, 1, &l
, 5006035, 46419, 5006035, ex
);
19 cout
<< "result " << ex
<< std::endl
;
21 ASSERT_EQ(3u, ex
.size());
22 ASSERT_EQ(98304u, ex
[0].truncate_size
);
23 ASSERT_EQ(ex
[1].offset
, ex
[1].truncate_size
);
24 ASSERT_EQ(94208u, ex
[2].truncate_size
);
27 TEST(Striper
, EmptyPartialResult
)
31 l
.object_size
= 4194304;
32 l
.stripe_unit
= 4194304;
35 vector
<ObjectExtent
> ex
;
36 Striper::file_to_extents(g_ceph_context
, 1, &l
, 725549056, 131072, 72554905600, ex
);
37 cout
<< "ex " << ex
<< std::endl
;
38 ASSERT_EQ(2u, ex
.size());
40 Striper::StripedReadResult r
;
43 r
.add_partial_result(g_ceph_context
, bl
, ex
[1].buffer_extents
);
49 r
.add_partial_result(g_ceph_context
, bl
, ex
[0].buffer_extents
);
52 r
.assemble_result(g_ceph_context
, outbl
, false);
54 ASSERT_EQ(65536u, outbl
.length());
57 TEST(Striper
, GetNumObj
)
61 l
.object_size
= 262144;
64 uint64_t size
,numobjs
;
66 numobjs
= Striper::get_num_objects(l
, size
);
67 ASSERT_EQ(2u, numobjs
);
69 numobjs
= Striper::get_num_objects(l
, size
);
70 ASSERT_EQ(5u, numobjs
);
72 numobjs
= Striper::get_num_objects(l
, size
);
73 ASSERT_EQ(6u, numobjs
);
76 TEST(Striper
, GetFileOffset
)
80 l
.object_size
= 262144;
84 uint64_t object_no
= 100;
85 uint64_t object_off
= 200000;
86 uint64_t file_offset
= Striper::get_file_offset(
87 g_ceph_context
, &l
, object_no
, object_off
);
88 ASSERT_EQ(26549568u, file_offset
);