write Page Guard

This commit is contained in:
2024-04-25 11:18:01 +00:00
parent 28bdaea8eb
commit 898cc1fa0e
4 changed files with 362 additions and 6 deletions

View File

@ -6,4 +6,6 @@ endif()
add_executable(replacer_test replacer_test.cpp)
target_link_libraries(replacer_test bpt GTest::gtest_main)
add_executable(buffer_pool_manager_test buffer_pool_manager_test.cpp)
target_link_libraries(buffer_pool_manager_test bpt GTest::gtest_main)
target_link_libraries(buffer_pool_manager_test bpt GTest::gtest_main)
add_executable(page_guard_test page_guard_test.cpp)
target_link_libraries(page_guard_test bpt GTest::gtest_main)

34
test/page_guard_test.cpp Normal file
View File

@ -0,0 +1,34 @@
#include <gtest/gtest.h>
#include <cstdio>
#include <cstring>
#include <memory>
#include <random>
#include <string>
#include "bpt/buffer_pool_manager.h"
#include "bpt/config.h"
TEST(PageGuardTest, DISABLED_SampleTest) {
const std::string db_name = "/tmp/test.db";
const size_t buffer_pool_size = 5;
const size_t k = 2;
auto disk_manager = std::make_shared<DiskManager>(db_name);
auto bpm = std::make_shared<BufferPoolManager>(buffer_pool_size, k, disk_manager.get());
page_id_t page_id_temp;
auto *page0 = bpm->NewPage(&page_id_temp);
auto guarded_page = BasicPageGuard(bpm.get(), page0);
EXPECT_EQ(page0->GetData(), guarded_page.GetData());
EXPECT_EQ(page0->GetPageId(), guarded_page.PageId());
EXPECT_EQ(1, page0->GetPinCount());
guarded_page.Drop();
EXPECT_EQ(0, page0->GetPinCount());
// Shutdown the disk manager and remove the temporary file we created.
disk_manager->Close();
remove(db_name.c_str());
}