]>
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"
10 l
.object_size
= 262144;
14 vector
<ObjectExtent
> ex
;
15 Striper::file_to_extents(g_ceph_context
, 1, &l
, 5006035, 46419, 5006035, ex
);
17 cout
<< "result " << ex
<< std::endl
;
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
);
25 TEST(Striper
, EmptyPartialResult
)
29 l
.object_size
= 4194304;
30 l
.stripe_unit
= 4194304;
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());
38 Striper::StripedReadResult r
;
41 r
.add_partial_result(g_ceph_context
, bl
, ex
[1].buffer_extents
);
47 r
.add_partial_result(g_ceph_context
, bl
, ex
[0].buffer_extents
);
50 r
.assemble_result(g_ceph_context
, outbl
, false);
52 ASSERT_EQ(65536u, outbl
.length());
55 TEST(Striper
, GetNumObj
)
59 l
.object_size
= 262144;
62 uint64_t size
,numobjs
;
64 numobjs
= Striper::get_num_objects(l
, size
);
65 ASSERT_EQ(2u, numobjs
);
67 numobjs
= Striper::get_num_objects(l
, size
);
68 ASSERT_EQ(5u, numobjs
);
70 numobjs
= Striper::get_num_objects(l
, size
);
71 ASSERT_EQ(6u, numobjs
);
74 TEST(Striper
, GetFileOffset
)
78 l
.object_size
= 262144;
82 uint64_t object_no
= 100;
83 uint64_t object_off
= 200000;
84 uint64_t file_offset
= Striper::get_file_offset(
85 g_ceph_context
, &l
, object_no
, object_off
);
86 ASSERT_EQ(26549568u, file_offset
);