if(OJ_TEST_BPT)
  add_executable(code oj_test_interface_for_bpt.cpp)
  target_link_libraries(code storage)
  set_target_properties(code PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
endif()
if(ENABLE_TEST_POINTS)
  add_executable(replacer_test replacer_test.cpp)
  target_link_libraries(replacer_test storage GTest::gtest_main)
  add_executable(buffer_pool_manager_test buffer_pool_manager_test.cpp)
  target_link_libraries(buffer_pool_manager_test storage GTest::gtest_main spdlog::spdlog)
  add_executable(page_guard_test page_guard_test.cpp)
  target_link_libraries(page_guard_test storage GTest::gtest_main)
  add_executable(bpt_basic_test bpt_basic_test.cpp)
  target_link_libraries(bpt_basic_test storage GTest::gtest_main spdlog::spdlog)
  add_executable(buffer_pool_manager_extreme_test buffer_pool_manager_extreme_test.cpp)
  target_link_libraries(buffer_pool_manager_extreme_test storage)
  add_executable(t1_std t1_std.cpp)
  set_target_properties(t1_std PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
  add_executable(t1_mk t1_mk.cpp)
  set_target_properties(t1_mk PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
  add_executable(bpt_advanced_test bpt_advanced_test.cpp)
  target_link_libraries(bpt_advanced_test storage GTest::gtest_main spdlog::spdlog)
  if(ENABLE_ADVANCED_FEATURE)
    add_executable(snapshot_test snapshot_test.cpp)
    target_link_libraries(snapshot_test storage dataguard GTest::gtest_main spdlog::spdlog)
  endif()
  add_executable(hash_collision_test hash_collision_test.cpp)
  add_executable(utils_test utils_test.cpp)
endif()