diff --git a/tests/unit/storage_v2_storage_mode.cpp b/tests/unit/storage_v2_storage_mode.cpp index 144203703..521bdba87 100644 --- a/tests/unit/storage_v2_storage_mode.cpp +++ b/tests/unit/storage_v2_storage_mode.cpp @@ -37,28 +37,29 @@ class StorageModeTest : public ::testing::TestWithParam(memgraph::storage::Config{ - .transaction{.isolation_level = memgraph::storage::IsolationLevel::SNAPSHOT_ISOLATION}}); + std::unique_ptr storage = + std::make_unique(memgraph::storage::Config{ + .transaction{.isolation_level = memgraph::storage::IsolationLevel::SNAPSHOT_ISOLATION}}); storage->SetStorageMode(storage_mode); auto creator = storage->Access(); auto other_analytics_mode_reader = storage->Access(); - ASSERT_EQ(CountVertices(creator, memgraph::storage::View::OLD), 0); - ASSERT_EQ(CountVertices(other_analytics_mode_reader, memgraph::storage::View::OLD), 0); + ASSERT_EQ(CountVertices(*creator, memgraph::storage::View::OLD), 0); + ASSERT_EQ(CountVertices(*other_analytics_mode_reader, memgraph::storage::View::OLD), 0); static constexpr int vertex_creation_count = 10; { for (size_t i = 1; i <= vertex_creation_count; i++) { - creator.CreateVertex(); + creator->CreateVertex(); int64_t expected_vertices_count = storage_mode == memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL ? i : 0; - ASSERT_EQ(CountVertices(creator, memgraph::storage::View::OLD), expected_vertices_count); - ASSERT_EQ(CountVertices(other_analytics_mode_reader, memgraph::storage::View::OLD), expected_vertices_count); + ASSERT_EQ(CountVertices(*creator, memgraph::storage::View::OLD), expected_vertices_count); + ASSERT_EQ(CountVertices(*other_analytics_mode_reader, memgraph::storage::View::OLD), expected_vertices_count); } } - ASSERT_FALSE(creator.Commit().HasError()); + ASSERT_FALSE(creator->Commit().HasError()); } INSTANTIATE_TEST_CASE_P(ParameterizedStorageModeTests, StorageModeTest, ::testing::ValuesIn(storage_modes), @@ -66,9 +67,9 @@ INSTANTIATE_TEST_CASE_P(ParameterizedStorageModeTests, StorageModeTest, ::testin class StorageModeMultiTxTest : public ::testing::Test { protected: - memgraph::storage::Storage db_; + std::unique_ptr db_ = std::make_unique(); std::filesystem::path data_directory{std::filesystem::temp_directory_path() / "MG_tests_unit_storage_mode"}; - memgraph::query::InterpreterContext interpreter_context{&db_, {}, data_directory}; + memgraph::query::InterpreterContext interpreter_context{db_.get(), {}, data_directory}; InterpreterFaker running_interpreter{&interpreter_context}, main_interpreter{&interpreter_context}; }; @@ -85,11 +86,11 @@ TEST_F(StorageModeMultiTxTest, ModeSwitchInactiveTransaction) { while (!started) { std::this_thread::sleep_for(std::chrono::milliseconds(20)); } - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); main_interpreter.Interpret("STORAGE MODE IN_MEMORY_ANALYTICAL"); // should change state - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL); // finish thread running_thread.request_stop(); @@ -98,7 +99,7 @@ TEST_F(StorageModeMultiTxTest, ModeSwitchInactiveTransaction) { TEST_F(StorageModeMultiTxTest, ModeSwitchActiveTransaction) { // transactional state - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); main_interpreter.Interpret("BEGIN"); bool started = false; @@ -117,7 +118,7 @@ TEST_F(StorageModeMultiTxTest, ModeSwitchActiveTransaction) { std::this_thread::sleep_for(std::chrono::milliseconds(20)); } // should not change still - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); main_interpreter.Interpret("COMMIT"); @@ -125,7 +126,7 @@ TEST_F(StorageModeMultiTxTest, ModeSwitchActiveTransaction) { std::this_thread::sleep_for(std::chrono::milliseconds(20)); } // should change state - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL); // finish thread running_thread.request_stop(); @@ -133,11 +134,11 @@ TEST_F(StorageModeMultiTxTest, ModeSwitchActiveTransaction) { } TEST_F(StorageModeMultiTxTest, ErrorChangeIsolationLevel) { - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_TRANSACTIONAL); main_interpreter.Interpret("STORAGE MODE IN_MEMORY_ANALYTICAL"); // should change state - ASSERT_EQ(db_.GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL); + ASSERT_EQ(db_->GetStorageMode(), memgraph::storage::StorageMode::IN_MEMORY_ANALYTICAL); ASSERT_THROW(running_interpreter.Interpret("SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;"), memgraph::query::IsolationLevelModificationInAnalyticsException);