mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
Verify debug manager state in UltConfigListener
Signed-off-by: Konstanty Misiak <konstanty.misiak@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
3b46737c67
commit
e665111013
@@ -22,6 +22,7 @@ ADD_SUPPORTED_TEST_PRODUCT_FAMILIES_DEFINITION()
|
||||
|
||||
add_executable(${TARGET_NAME}
|
||||
${NEO_SOURCE_DIR}/level_zero/core/source/dll/disallow_deferred_deleter.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/base_ult_config_listener.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_management.h
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_management.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_leak_listener.h
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "shared/source/gmm_helper/gmm_helper.h"
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/source/os_interface/hw_info_config.h"
|
||||
#include "shared/test/unit_test/base_ult_config_listener.h"
|
||||
#include "shared/test/unit_test/helpers/default_hw_info.inl"
|
||||
#include "shared/test/unit_test/helpers/memory_leak_listener.h"
|
||||
#include "shared/test/unit_test/helpers/test_files.h"
|
||||
@@ -207,6 +208,9 @@ int main(int argc, char **argv) {
|
||||
listeners.Append(customEventListener);
|
||||
}
|
||||
|
||||
listeners.Append(new NEO::MemoryLeakListener);
|
||||
listeners.Append(new NEO::BaseUltConfigListener);
|
||||
|
||||
binaryNameSuffix.append(NEO::familyName[hwInfoForTests.platform.eRenderCoreFamily]);
|
||||
binaryNameSuffix.append(hwInfoForTests.capabilityTable.platformType);
|
||||
|
||||
@@ -222,7 +226,6 @@ int main(int argc, char **argv) {
|
||||
testBinaryFilesNoRev.append(testFiles);
|
||||
testFiles = testBinaryFiles;
|
||||
testFilesNoRev = testBinaryFilesNoRev;
|
||||
listeners.Append(new NEO::MemoryLeakListener);
|
||||
|
||||
NEO::GmmHelper::createGmmContextWrapperFunc =
|
||||
NEO::GmmClientContextBase::create<NEO::MockGmmClientContext>;
|
||||
|
||||
@@ -25,6 +25,7 @@ add_supported_test_product_families_definition()
|
||||
add_executable(
|
||||
${TARGET_NAME}
|
||||
${NEO_SOURCE_DIR}/level_zero/core/source/dll/disallow_deferred_deleter.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/base_ult_config_listener.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_management.h
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_management.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_leak_listener.h
|
||||
|
||||
@@ -20,6 +20,7 @@ ADD_SUPPORTED_TEST_PRODUCT_FAMILIES_DEFINITION()
|
||||
|
||||
add_executable(${TARGET_NAME}
|
||||
${NEO_SOURCE_DIR}/level_zero/core/source/dll/disallow_deferred_deleter.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/base_ult_config_listener.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_management.h
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_management.cpp
|
||||
${NEO_SOURCE_DIR}/shared/test/unit_test/helpers/memory_leak_listener.h
|
||||
|
||||
@@ -56,6 +56,7 @@ set(IGDRCL_SRCS_LIB_ULT
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/libult/ult_aub_command_stream_receiver.h
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/libult/ult_command_stream_receiver.h
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/utilities/debug_settings_reader_creator.cpp
|
||||
${NEO_SHARED_TEST_DIRECTORY}/unit_test/base_ult_config_listener.cpp
|
||||
${NEO_SHARED_TEST_DIRECTORY}/unit_test/helpers/memory_leak_listener.cpp
|
||||
${NEO_SHARED_TEST_DIRECTORY}/unit_test/helpers/memory_leak_listener.h
|
||||
${NEO_SHARED_TEST_DIRECTORY}/unit_test/helpers/memory_management.cpp
|
||||
|
||||
@@ -63,6 +63,8 @@ typedef Test<DrmMemoryManagerWithLocalMemoryFixture> DrmMemoryManagerWithLocalMe
|
||||
typedef Test<DrmMemoryManagerFixtureWithoutQuietIoctlExpectation> DrmMemoryManagerWithExplicitExpectationsTest;
|
||||
|
||||
TEST_F(DrmMemoryManagerTest, givenDebugVariableWhenCreatingDrmMemoryManagerThenSetSupportForMultiStorageResources) {
|
||||
DebugManagerStateRestore dbgState;
|
||||
|
||||
EXPECT_TRUE(memoryManager->supportsMultiStorageResources);
|
||||
|
||||
{
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "shared/source/execution_environment/execution_environment.h"
|
||||
#include "shared/source/memory_manager/memory_manager.h"
|
||||
#include "shared/test/unit_test/helpers/default_hw_info.h"
|
||||
#include "shared/test/unit_test/helpers/ult_hw_config.h"
|
||||
|
||||
#include "opencl/source/platform/platform.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_platform.h"
|
||||
@@ -18,22 +17,20 @@
|
||||
#include "third_party/aub_stream/headers/aubstream.h"
|
||||
|
||||
void NEO::UltConfigListener::OnTestStart(const ::testing::TestInfo &testInfo) {
|
||||
referencedHwInfo = *defaultHwInfo;
|
||||
BaseUltConfigListener::OnTestStart(testInfo);
|
||||
|
||||
auto executionEnvironment = constructPlatform()->peekExecutionEnvironment();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
executionEnvironment->rootDeviceEnvironments[0]->setHwInfo(defaultHwInfo.get());
|
||||
executionEnvironment->calculateMaxOsContextCount();
|
||||
executionEnvironment->rootDeviceEnvironments[0]->initGmm();
|
||||
}
|
||||
|
||||
void NEO::UltConfigListener::OnTestEnd(const ::testing::TestInfo &testInfo) {
|
||||
// Clear global platform that it shouldn't be reused between tests
|
||||
platformsImpl->clear();
|
||||
MemoryManager::maxOsContextCount = 0u;
|
||||
aub_stream::injectMMIOList(aub_stream::MMIOList{});
|
||||
|
||||
// Ensure that global state is restored
|
||||
UltHwConfig expectedState{};
|
||||
static_assert(sizeof(UltHwConfig) == 9 * sizeof(bool), ""); // Ensure that there is no internal padding
|
||||
EXPECT_EQ(0, memcmp(&expectedState, &ultHwConfig, sizeof(UltHwConfig)));
|
||||
EXPECT_EQ(0, memcmp(&referencedHwInfo, defaultHwInfo.get(), sizeof(HardwareInfo)));
|
||||
BaseUltConfigListener::OnTestEnd(testInfo);
|
||||
}
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "shared/test/unit_test/base_ult_config_listener.h"
|
||||
|
||||
namespace NEO {
|
||||
class UltConfigListener : public ::testing::EmptyTestEventListener {
|
||||
|
||||
class UltConfigListener : public BaseUltConfigListener {
|
||||
private:
|
||||
void OnTestStart(const ::testing::TestInfo &) override;
|
||||
void OnTestEnd(const ::testing::TestInfo &) override;
|
||||
HardwareInfo referencedHwInfo;
|
||||
};
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -44,6 +44,8 @@ if(NOT SKIP_UNIT_TESTS)
|
||||
|
||||
add_executable(${TARGET_NAME}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/base_ult_config_listener.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/base_ult_config_listener.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_mode.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tests_configuration.h
|
||||
|
||||
38
shared/test/unit_test/base_ult_config_listener.cpp
Normal file
38
shared/test/unit_test/base_ult_config_listener.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "base_ult_config_listener.h"
|
||||
|
||||
#include "shared/test/unit_test/helpers/default_hw_info.h"
|
||||
#include "shared/test/unit_test/helpers/ult_hw_config.h"
|
||||
|
||||
void NEO::BaseUltConfigListener::OnTestStart(const ::testing::TestInfo &) {
|
||||
debugVarSnapshot = DebugManager.flags;
|
||||
injectFcnSnapshot = DebugManager.injectFcn;
|
||||
|
||||
referencedHwInfo = *defaultHwInfo;
|
||||
}
|
||||
|
||||
void NEO::BaseUltConfigListener::OnTestEnd(const ::testing::TestInfo &) {
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
#define DECLARE_DEBUG_VARIABLE(dataType, variableName, defaultValue, description) \
|
||||
EXPECT_EQ(debugVarSnapshot.variableName.getRef(), DebugManager.flags.variableName.getRef());
|
||||
|
||||
#include "shared/source/debug_settings/release_variables.inl"
|
||||
|
||||
#include "debug_variables.inl"
|
||||
|
||||
#undef DECLARE_DEBUG_VARIABLE
|
||||
|
||||
EXPECT_EQ(injectFcnSnapshot, DebugManager.injectFcn);
|
||||
|
||||
// Ensure that global state is restored
|
||||
UltHwConfig expectedState{};
|
||||
static_assert(sizeof(UltHwConfig) == 9 * sizeof(bool), ""); // Ensure that there is no internal padding
|
||||
EXPECT_EQ(0, memcmp(&expectedState, &ultHwConfig, sizeof(UltHwConfig)));
|
||||
EXPECT_EQ(0, memcmp(&referencedHwInfo, defaultHwInfo.get(), sizeof(HardwareInfo)));
|
||||
}
|
||||
27
shared/test/unit_test/base_ult_config_listener.h
Normal file
27
shared/test/unit_test/base_ult_config_listener.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
class BaseUltConfigListener : public ::testing::EmptyTestEventListener {
|
||||
protected:
|
||||
void OnTestStart(const ::testing::TestInfo &) override;
|
||||
void OnTestEnd(const ::testing::TestInfo &) override;
|
||||
|
||||
private:
|
||||
DebugVariables debugVarSnapshot;
|
||||
void *injectFcnSnapshot = nullptr;
|
||||
HardwareInfo referencedHwInfo;
|
||||
};
|
||||
|
||||
} // namespace NEO
|
||||
Reference in New Issue
Block a user