Skip to content

Commit 053e0f9

Browse files
committed
db domain magr test
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
1 parent f482639 commit 053e0f9

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

src/v/cloud_topics/level_one/domain/tests/db_domain_manager_test.cc

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,3 +770,66 @@ TEST_F(DbDomainManagerTest, TestRestoreWithConcurrentReads) {
770770
// Validate the restored metadata.
771771
validate_metadata(tp, kafka::offset(0), kafka::offset(30));
772772
}
773+
774+
TEST_F(DbDomainManagerTest, TestGetSizeBasic) {
775+
auto tp = make_tp();
776+
// Add 3 objects, each with an extent of size 512 bytes.
777+
{
778+
l1_rpc::add_objects_request req;
779+
req.new_objects = make_new_objects(tp, kafka::offset(0), 3, 10);
780+
req.new_terms = make_terms(tp, kafka::offset(0), model::term_id(1));
781+
auto reply = initial_manager->add_objects(std::move(req)).get();
782+
ASSERT_EQ(reply.ec, l1_rpc::errc::ok);
783+
}
784+
785+
// Query size - should be 3 * 512 = 1536 bytes.
786+
l1_rpc::get_size_request size_req{.tp = tp};
787+
auto size_reply = initial_manager->get_size(std::move(size_req)).get();
788+
ASSERT_EQ(size_reply.ec, l1_rpc::errc::ok);
789+
ASSERT_EQ(size_reply.size, 3 * 512);
790+
}
791+
792+
TEST_F(DbDomainManagerTest, TestGetSizeAfterReplace) {
793+
auto tp = make_tp();
794+
// Add 5 objects, each with an extent of size 512 bytes.
795+
for (int i = 0; i < 5; ++i) {
796+
l1_rpc::add_objects_request req;
797+
req.new_objects = make_new_objects(tp, kafka::offset(i), 1, 1);
798+
req.new_terms = make_terms(tp, kafka::offset(i), model::term_id(1));
799+
auto reply = initial_manager->add_objects(std::move(req)).get();
800+
ASSERT_EQ(reply.ec, l1_rpc::errc::ok);
801+
}
802+
803+
// Initial size should be 5 * 512 = 2560 bytes.
804+
{
805+
l1_rpc::get_size_request size_req{.tp = tp};
806+
auto size_reply = initial_manager->get_size(std::move(size_req)).get();
807+
ASSERT_EQ(size_reply.ec, l1_rpc::errc::ok);
808+
ASSERT_EQ(size_reply.size, 5 * 512);
809+
}
810+
811+
// Replace all 5 extents with 1 extent (also 512 bytes).
812+
l1_rpc::replace_objects_request replace_req{
813+
.metastore_partition = model::partition_id(0),
814+
.new_objects = make_new_objects(tp, kafka::offset(0), 1, 5),
815+
};
816+
auto replace_reply
817+
= initial_manager->replace_objects(std::move(replace_req)).get();
818+
ASSERT_EQ(replace_reply.ec, l1_rpc::errc::ok);
819+
820+
// Size should now be 1 * 512 = 512 bytes.
821+
{
822+
l1_rpc::get_size_request size_req{.tp = tp};
823+
auto size_reply = initial_manager->get_size(std::move(size_req)).get();
824+
ASSERT_EQ(size_reply.ec, l1_rpc::errc::ok);
825+
ASSERT_EQ(size_reply.size, 512);
826+
}
827+
}
828+
829+
TEST_F(DbDomainManagerTest, TestGetSizeMissingPartition) {
830+
auto tp = make_tp();
831+
// Query size for a partition that doesn't exist.
832+
l1_rpc::get_size_request size_req{.tp = tp};
833+
auto size_reply = initial_manager->get_size(std::move(size_req)).get();
834+
ASSERT_EQ(size_reply.ec, l1_rpc::errc::missing_ntp);
835+
}

0 commit comments

Comments
 (0)