fix: usm reuse cleaner mt tests

Related-To: NEO-13425

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
Dominik Dabek
2025-01-22 14:01:19 +00:00
committed by Compute-Runtime-Automation
parent 6c6cc26b19
commit 9cfc6e6bbe
4 changed files with 67 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2022 Intel Corporation
# Copyright (C) 2018-2025 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
@@ -8,5 +8,6 @@ set(IGDRCL_SRCS_mt_tests_memory_manager
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/deferred_deleter_clear_queue_mt_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/deferred_deleter_mt_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/unified_memory_reuse_cleaner_tests_mt.cpp
)
target_sources(igdrcl_mt_tests PRIVATE ${IGDRCL_SRCS_mt_tests_memory_manager})

View File

@@ -0,0 +1,46 @@
/*
* Copyright (C) 2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/test/common/mocks/mock_usm_memory_reuse_cleaner.h"
#include "shared/test/common/test_macros/test.h"
namespace NEO {
TEST(UnifiedMemoryReuseCleanerTestsMt, givenUnifiedMemoryReuseCleanerWhenSleepExpiredThenTrimOldInCachesIsCalled) {
MockUnifiedMemoryReuseCleaner cleaner;
cleaner.callBaseStartThread = true;
cleaner.callBaseTrimOldInCaches = false;
EXPECT_EQ(nullptr, cleaner.unifiedMemoryReuseCleanerThread);
cleaner.startThread();
EXPECT_NE(nullptr, cleaner.unifiedMemoryReuseCleanerThread);
EXPECT_FALSE(cleaner.runCleaning.load());
EXPECT_TRUE(cleaner.keepCleaning.load());
EXPECT_FALSE(cleaner.trimOldInCachesCalled);
cleaner.registerSvmAllocationCache(nullptr);
EXPECT_TRUE(cleaner.runCleaning.load());
while (false == cleaner.trimOldInCachesCalled) {
std::this_thread::yield();
}
cleaner.stopThread();
EXPECT_EQ(nullptr, cleaner.unifiedMemoryReuseCleanerThread);
EXPECT_FALSE(cleaner.runCleaning.load());
EXPECT_FALSE(cleaner.keepCleaning.load());
}
TEST(UnifiedMemoryReuseCleanerTestsMt, givenUnifiedMemoryReuseCleanerWithNotStartedCleaningWhenShuttingDownThenNoHang) {
MockUnifiedMemoryReuseCleaner cleaner;
cleaner.callBaseStartThread = true;
cleaner.callBaseTrimOldInCaches = false;
cleaner.startThread();
EXPECT_NE(nullptr, cleaner.unifiedMemoryReuseCleanerThread);
std::this_thread::yield();
cleaner.stopThread();
}
} // namespace NEO