Move files from shared/test/unit_test to shared/test/common

unit_test/helpers/debug_helpers.cpp -> common/helpers
unit_test/page_fault_manager/default_asan_options.cpp -> common/page_fault_manag
unit_test/utilities/cpuintrinsics.cpp -> common/utilities
unit_test/memory_manager/deferred_deleter_mt_tests.cpp -> opencl/test/unit_test/
delete: unit_test/mocks/debugger_l0_create.cpp
delete: unit_test/page_fault_manager/default_asan_options.cpp

Related-To: NEO-6524
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
This commit is contained in:
Warchulski, Jaroslaw
2022-08-25 17:17:06 +00:00
committed by Compute-Runtime-Automation
parent 3f5c3a8cdf
commit 7e7f8b5bc2
16 changed files with 55 additions and 79 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2021 Intel Corporation
* Copyright (C) 2018-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*

View File

@@ -117,8 +117,8 @@ set(neo_libult_common_SRCS_LIB_ULT
${NEO_SHARED_TEST_DIRECTORY}/common/test_macros/test_excludes.h
${NEO_SHARED_TEST_DIRECTORY}/common/base_ult_config_listener.cpp
${NEO_SHARED_TEST_DIRECTORY}/common/base_ult_config_listener.h
${NEO_SHARED_TEST_DIRECTORY}/unit_test/helpers/debug_helpers.cpp
${NEO_SHARED_TEST_DIRECTORY}/unit_test/utilities/cpuintrinsics.cpp
${NEO_SHARED_TEST_DIRECTORY}/common/helpers/debug_helpers.cpp
${NEO_SHARED_TEST_DIRECTORY}/common/utilities/cpuintrinsics.cpp
${NEO_SHARED_DIRECTORY}/gmm_helper/resource_info_impl.cpp
)

View File

@@ -0,0 +1,10 @@
#
# Copyright (C) 2022 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
target_sources(neo_libult_common PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/default_asan_options.cpp
)

View File

@@ -9,4 +9,4 @@ extern "C" {
const char *__asan_default_options() { // NOLINT(readability-identifier-naming0
return "allow_user_segv_handler=1";
}
}
}

View File

@@ -9,7 +9,7 @@ target_sources(neo_shared_tests PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/address_mapper_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/alignment_selector_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/deferrable_allocation_deletion_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/deferred_deleter_mt_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/deferred_deleter_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/gfx_partition_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/graphics_allocation_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/host_ptr_manager_tests.cpp

View File

@@ -1,236 +0,0 @@
/*
* Copyright (C) 2018-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/memory_manager/os_agnostic_memory_manager.h"
#include "shared/test/common/mocks/mock_deferrable_deletion.h"
#include "shared/test/common/mocks/mock_deferred_deleter.h"
#include "gtest/gtest.h"
using namespace NEO;
TEST(DeferredDeleter, WhenDeferredDeleterIsCreatedThenItIsNotMoveableOrCopyable) {
EXPECT_FALSE(std::is_move_constructible<DeferredDeleter>::value);
EXPECT_FALSE(std::is_copy_constructible<DeferredDeleter>::value);
}
TEST(DeferredDeleter, WhenDeferredDeleterIsCreatedThenItIsNotAssignable) {
EXPECT_FALSE(std::is_move_assignable<DeferredDeleter>::value);
EXPECT_FALSE(std::is_copy_assignable<DeferredDeleter>::value);
}
struct DeferredDeleterTest : public ::testing::Test {
void SetUp() override {
deleter.reset(new MockDeferredDeleter());
}
void TearDown() override {
EXPECT_TRUE(deleter->isQueueEmpty());
EXPECT_EQ(0, deleter->getElementsToRelease());
}
void waitForAsyncThread() {
while (!deleter->isWorking()) {
std::this_thread::yield();
}
}
MockDeferrableDeletion *createDeletion() {
return new MockDeferrableDeletion();
}
std::unique_ptr<MockDeferredDeleter> deleter;
};
TEST_F(DeferredDeleterTest, WhenDeferredDeleterIsCreatedThenInitialValuesAreSetCorrectly) {
EXPECT_EQ(0, deleter->getClientsNum());
EXPECT_FALSE(deleter->isWorking());
EXPECT_FALSE(deleter->isThreadRunning());
EXPECT_EQ(0, deleter->drainCalled);
EXPECT_EQ(0, deleter->clearCalled);
EXPECT_EQ(0, deleter->areElementsReleasedCalled);
EXPECT_EQ(0, deleter->shouldStopCalled);
EXPECT_EQ(0, deleter->getElementsToRelease());
EXPECT_TRUE(deleter->isQueueEmpty());
EXPECT_FALSE(deleter->expectDrainCalled);
EXPECT_FALSE(deleter->expectedDrainValue);
}
TEST_F(DeferredDeleterTest, WhenDrainingThenQueueIsUpdated) {
auto deletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(deletion);
EXPECT_FALSE(deleter->isQueueEmpty());
deleter->drain();
EXPECT_TRUE(deleter->isQueueEmpty());
EXPECT_EQ(1, deleter->drainCalled);
EXPECT_EQ(1, deleter->clearCalled);
}
TEST_F(DeferredDeleterTest, GivenTwoClientsWhenProcessingDeletionsThenOperationsAreHandledCorrectly) {
deleter->DeferredDeleter::addClient();
waitForAsyncThread();
EXPECT_TRUE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isWorking());
EXPECT_EQ(1, deleter->getClientsNum());
auto threadHandle = deleter->getThreadHandle();
EXPECT_NE(nullptr, threadHandle);
deleter->DeferredDeleter::addClient();
EXPECT_TRUE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isWorking());
EXPECT_EQ(2, deleter->getClientsNum());
EXPECT_EQ(threadHandle, deleter->getThreadHandle());
deleter->forceStop();
EXPECT_FALSE(deleter->isWorking());
EXPECT_FALSE(deleter->isThreadRunning());
}
TEST_F(DeferredDeleterTest, WhenAddingAndRemovingClientsThenOperationsAreHandledCorrectly) {
deleter->DeferredDeleter::addClient();
deleter->DeferredDeleter::addClient();
waitForAsyncThread();
EXPECT_EQ(2, deleter->getClientsNum());
deleter->DeferredDeleter::removeClient();
EXPECT_TRUE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isWorking());
EXPECT_EQ(1, deleter->getClientsNum());
deleter->allowEarlyStopThread();
deleter->DeferredDeleter::removeClient();
EXPECT_FALSE(deleter->isThreadRunning());
EXPECT_FALSE(deleter->isWorking());
EXPECT_EQ(0, deleter->getClientsNum());
deleter->forceStop();
EXPECT_FALSE(deleter->isThreadRunning());
}
TEST_F(DeferredDeleterTest, GivenNotWorkingWhenDrainingThenOperationIsCompleted) {
EXPECT_FALSE(deleter->isWorking());
deleter->drain();
EXPECT_EQ(1, deleter->drainCalled);
EXPECT_EQ(1, deleter->clearCalled);
EXPECT_EQ(2, deleter->areElementsReleasedCalled);
}
TEST_F(DeferredDeleterTest, GivenWorkingWhenDrainingThenOperationIsCompleted) {
deleter->DeferredDeleter::addClient();
waitForAsyncThread();
EXPECT_TRUE(deleter->isWorking());
deleter->drain();
EXPECT_EQ(1, deleter->drainCalled);
EXPECT_EQ(2, deleter->areElementsReleasedCalled);
deleter->forceStop();
}
TEST_F(DeferredDeleterTest, GivenThreadNotRunningWhenStoppingThenQueueIsEmptied) {
auto deletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(deletion);
EXPECT_FALSE(deleter->isQueueEmpty());
EXPECT_FALSE(deleter->isThreadRunning());
deleter->expectDrainBlockingValue(false);
deleter->forceStop();
EXPECT_TRUE(deleter->isQueueEmpty());
EXPECT_NE(0, deleter->drainCalled);
}
TEST_F(DeferredDeleterTest, GivenThreadRunningWhenStoppingThenQueueIsEmptied) {
deleter->DeferredDeleter::addClient();
auto deletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(deletion);
EXPECT_TRUE(deleter->isThreadRunning());
deleter->allowEarlyStopThread();
deleter->expectDrainBlockingValue(false);
deleter->DeferredDeleter::removeClient();
EXPECT_FALSE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isQueueEmpty());
EXPECT_NE(0, deleter->drainCalled);
}
TEST_F(DeferredDeleterTest, GivenAsyncThreadWaitsForQueueItemWhenDeletingThenQueueIsEmptied) {
deleter->DeferredDeleter::addClient();
waitForAsyncThread();
auto deletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(deletion);
EXPECT_TRUE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isWorking());
deleter->allowEarlyStopThread();
deleter->DeferredDeleter::removeClient();
EXPECT_TRUE(deleter->isQueueEmpty());
}
TEST_F(DeferredDeleterTest, GivenAsyncThreadClearQueueWithoutWaitingForQueueItemWhenDeletingThenQueueIsEmptied) {
auto deletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(deletion);
EXPECT_FALSE(deleter->isQueueEmpty());
EXPECT_FALSE(deleter->isThreadRunning());
deleter->DeferredDeleter::addClient();
waitForAsyncThread();
EXPECT_TRUE(deleter->isThreadRunning());
deleter->allowEarlyStopThread();
deleter->DeferredDeleter::removeClient();
EXPECT_TRUE(deleter->isQueueEmpty());
}
TEST_F(DeferredDeleterTest, GivenAsyncThreadWaitsForQueueItemTwiceWhenDeletingThenQueueIsEmptied) {
deleter->DeferredDeleter::addClient();
waitForAsyncThread();
auto deletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(deletion);
EXPECT_TRUE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isWorking());
while (deleter->shouldStopCalled == 0)
;
EXPECT_TRUE(deleter->isThreadRunning());
EXPECT_TRUE(deleter->isWorking());
auto secondDeletion = createDeletion();
deleter->DeferredDeleter::deferDeletion(secondDeletion);
deleter->allowEarlyStopThread();
deleter->DeferredDeleter::removeClient();
EXPECT_TRUE(deleter->isQueueEmpty());
EXPECT_EQ(0, deleter->getElementsToRelease());
}
TEST_F(DeferredDeleterTest, WhenReleasingThenAllElementsAreReleased) {
deleter->setElementsToRelease(1);
EXPECT_EQ(1, deleter->getElementsToRelease());
EXPECT_FALSE(deleter->baseAreElementsReleased());
deleter->setElementsToRelease(0);
EXPECT_EQ(0, deleter->getElementsToRelease());
EXPECT_TRUE(deleter->baseAreElementsReleased());
}
TEST_F(DeferredDeleterTest, WhenSettingDoWorkInBackgroundThenThreadShouldStopIsSetCorrectly) {
deleter->setDoWorkInBackgroundValue(false);
EXPECT_TRUE(deleter->baseShouldStop());
deleter->setDoWorkInBackgroundValue(true);
EXPECT_FALSE(deleter->baseShouldStop());
}
TEST_F(DeferredDeleterTest, givenDeferredDeleterWhenBlockingDrainIsCalledThenArElementsReleasedIsCalled) {
deleter->drain(true);
EXPECT_NE(0, deleter->areElementsReleasedCalled);
EXPECT_EQ(1, deleter->drainCalled);
}
TEST_F(DeferredDeleterTest, givenDeferredDeleterWhenNonBlockingDrainIsCalledThenArElementsReleasedIsNotCalled) {
deleter->drain(false);
EXPECT_EQ(0, deleter->areElementsReleasedCalled);
EXPECT_EQ(1, deleter->drainCalled);
}

View File

@@ -0,0 +1,22 @@
/*
* Copyright (C) 2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/test/common/mocks/mock_deferred_deleter.h"
#include "gtest/gtest.h"
using namespace NEO;
TEST(DeferredDeleter, WhenDeferredDeleterIsCreatedThenItIsNotMoveableOrCopyable) {
EXPECT_FALSE(std::is_move_constructible<DeferredDeleter>::value);
EXPECT_FALSE(std::is_copy_constructible<DeferredDeleter>::value);
}
TEST(DeferredDeleter, WhenDeferredDeleterIsCreatedThenItIsNotAssignable) {
EXPECT_FALSE(std::is_move_assignable<DeferredDeleter>::value);
EXPECT_FALSE(std::is_copy_assignable<DeferredDeleter>::value);
}

View File

@@ -1,21 +0,0 @@
/*
* Copyright (C) 2020-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/device/device.h"
#include "shared/test/common/mocks/mock_l0_debugger.h"
NEO::DebugerL0CreateFn mockDebuggerL0HwFactory[IGFX_MAX_CORE];
namespace NEO {
std::unique_ptr<Debugger> DebuggerL0::create(NEO::Device *device) {
initDebuggingInOs(device->getRootDeviceEnvironment().osInterface.get());
auto debugger = mockDebuggerL0HwFactory[device->getHardwareInfo().platform.eRenderCoreFamily](device);
return std::unique_ptr<DebuggerL0>(debugger);
}
} // namespace NEO

View File

@@ -4,11 +4,9 @@
# SPDX-License-Identifier: MIT
#
set(NEO_CORE_CPU_PAGE_FAULT_MANAGER_TESTS
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cpu_page_fault_manager_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/default_asan_options.cpp
target_sources(neo_shared_tests PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cpu_page_fault_manager_tests.cpp
)
set_property(GLOBAL PROPERTY NEO_CORE_CPU_PAGE_FAULT_MANAGER_TESTS ${NEO_CORE_CPU_PAGE_FAULT_MANAGER_TESTS})
add_subdirectories()
add_subdirectories()

View File

@@ -1,14 +1,12 @@
#
# Copyright (C) 2019-2020 Intel Corporation
# Copyright (C) 2019-2022 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
set(NEO_CORE_PAGE_FAULT_MANAGER_LINUX_TESTS
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cpu_page_fault_manager_linux_tests.cpp
)
if(UNIX)
set_property(GLOBAL PROPERTY NEO_CORE_PAGE_FAULT_MANAGER_LINUX_TESTS ${NEO_CORE_PAGE_FAULT_MANAGER_LINUX_TESTS})
target_sources(neo_shared_tests PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cpu_page_fault_manager_linux_tests.cpp
)
endif()

View File

@@ -1,14 +1,12 @@
#
# Copyright (C) 2019-2020 Intel Corporation
# Copyright (C) 2019-2022 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
set(NEO_CORE_PAGE_FAULT_MANAGER_WINDOWS_TESTS
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cpu_page_fault_manager_windows_tests.cpp
)
if(WIN32)
set_property(GLOBAL PROPERTY NEO_CORE_PAGE_FAULT_MANAGER_WINDOWS_TESTS ${NEO_CORE_PAGE_FAULT_MANAGER_WINDOWS_TESTS})
target_sources(neo_shared_tests PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/cpu_page_fault_manager_windows_tests.cpp
)
endif()