From 781533565e1bb6f56132e5dbf52f9105293dc0ac Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Wed, 8 Nov 2023 15:15:17 +0000 Subject: [PATCH] fix: fix issues with ubsan in shared and OCL tests Signed-off-by: Mateusz Jablonski --- .../command_queue/enqueue_svm_tests.cpp | 4 ++-- .../test/unit_test/d3d_sharing/d3d9_tests.cpp | 8 ++++---- .../unit_test/d3d_sharing/d3d_tests_part1.cpp | 4 ++-- .../test/unit_test/fixtures/d3d_test_fixture.h | 12 ++++++------ opencl/test/unit_test/gtpin/gtpin_tests.cpp | 10 +++++----- .../mock_gl/windows/mock_opengl32.cpp | 6 +++--- .../os_interface/mock_performance_counters.cpp | 2 +- .../test/unit_test/program/program_tests.cpp | 4 ++-- .../sharings/gl/windows/gl_sharing_tests.cpp | 2 +- shared/source/utilities/cpu_info.h | 4 ++-- shared/source/utilities/windows/cpu_info.cpp | 4 ++-- .../windows/um_km_data_translator_tests.cpp | 2 +- .../utilities/x86_64/cpuinfo_tests_x86_64.cpp | 18 +++++++++--------- 13 files changed, 40 insertions(+), 40 deletions(-) diff --git a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp index 94b95f283d..779d4296c8 100644 --- a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp @@ -234,7 +234,7 @@ TEST_F(EnqueueSvmTest, GivenValidParamsWhenFreeingSvmWithCallbackThenSuccessIsRe ClbHelper(bool &callbackWasCalled) : callbackWasCalled(callbackWasCalled) {} - static void CL_CALLBACK clb(cl_command_queue queue, cl_uint numSvmPointers, void *svmPointers[], void *usrData) { + static void CL_CALLBACK clb(cl_command_queue queue, cl_uint numSvmPointers, void **svmPointers, void *usrData) { ClbHelper *data = (ClbHelper *)usrData; data->callbackWasCalled = true; } @@ -264,7 +264,7 @@ TEST_F(EnqueueSvmTest, GivenValidParamsWhenFreeingSvmWithCallbackAndEventThenSuc ClbHelper(bool &callbackWasCalled) : callbackWasCalled(callbackWasCalled) {} - static void CL_CALLBACK clb(cl_command_queue queue, cl_uint numSvmPointers, void *svmPointers[], void *usrData) { + static void CL_CALLBACK clb(cl_command_queue queue, cl_uint numSvmPointers, void **svmPointers, void *usrData) { ClbHelper *data = (ClbHelper *)usrData; data->callbackWasCalled = true; } diff --git a/opencl/test/unit_test/d3d_sharing/d3d9_tests.cpp b/opencl/test/unit_test/d3d_sharing/d3d9_tests.cpp index 2bb171ca82..80233f2f7c 100644 --- a/opencl/test/unit_test/d3d_sharing/d3d9_tests.cpp +++ b/opencl/test/unit_test/d3d_sharing/d3d9_tests.cpp @@ -123,8 +123,8 @@ class D3D9Tests : public PlatformFixture, public ::testing::Test { MockContext *context; MockCommandQueue *cmdQ; DebugManagerStateRestore dbgRestore; - char dummyD3DSurface; - char dummyD3DSurfaceStaging; + uint64_t dummyD3DSurface{}; + uint64_t dummyD3DSurfaceStaging{}; cl_dx9_surface_info_khr surfaceInfo = {}; Gmm *gmm = nullptr; @@ -457,7 +457,7 @@ TEST_F(D3D9Tests, givenNonDefaultPoolWhenSurfaceIsCreatedThenReturnError) { TEST_F(D3D9Tests, givenAlreadyUsedSurfaceWhenSurfaceIsCreatedThenReturnError) { cl_int retVal = CL_SUCCESS; - surfaceInfo.resource = reinterpret_cast(1); + surfaceInfo.resource = reinterpret_cast(0x8); mockSharingFcns->getTexture2dDescSetParams = true; mockSharingFcns->getTexture2dDescParamsSet.textureDesc = mockSharingFcns->mockTexture2dDesc; @@ -1270,7 +1270,7 @@ static const std::tuplemockSharingFcns->getBufferDescParamsSet.bufferDesc = this->mockSharingFcns->mockBufferDesc; this->mockSharingFcns->createQuerySetParams = true; - this->mockSharingFcns->createQueryParamsSet.query = reinterpret_cast(1); + this->mockSharingFcns->createQueryParamsSet.query = reinterpret_cast(0x8); auto buffer = std::unique_ptr(D3DBuffer::create(this->context, reinterpret_cast(&this->dummyD3DBuffer), CL_MEM_READ_WRITE, nullptr)); ASSERT_NE(nullptr, buffer.get()); @@ -420,7 +420,7 @@ TYPED_TEST_P(D3DTests, givenNonSharedResourceFlagWhenCreateBufferThenCreateNewSt this->mockSharingFcns->createBufferParamsSet.buffer = reinterpret_cast(&this->dummyD3DBufferStaging); this->mockSharingFcns->createQuerySetParams = true; - this->mockSharingFcns->createQueryParamsSet.query = reinterpret_cast(1); + this->mockSharingFcns->createQueryParamsSet.query = reinterpret_cast(0x8); auto buffer = std::unique_ptr(D3DBuffer::create(this->context, reinterpret_cast(&this->dummyD3DBuffer), CL_MEM_READ_WRITE, nullptr)); ASSERT_NE(nullptr, buffer.get()); diff --git a/opencl/test/unit_test/fixtures/d3d_test_fixture.h b/opencl/test/unit_test/fixtures/d3d_test_fixture.h index 3729669712..a6474ba0e9 100644 --- a/opencl/test/unit_test/fixtures/d3d_test_fixture.h +++ b/opencl/test/unit_test/fixtures/d3d_test_fixture.h @@ -198,12 +198,12 @@ class D3DTests : public PlatformFixture, public ::testing::Test { } MockD3DSharingFunctions *mockSharingFcns; - MockContext *context; - MockCommandQueue *cmdQ; - char dummyD3DBuffer; - char dummyD3DBufferStaging; - char dummyD3DTexture; - char dummyD3DTextureStaging; + MockContext *context = nullptr; + MockCommandQueue *cmdQ = nullptr; + uint64_t dummyD3DBuffer{}; + uint64_t dummyD3DBufferStaging{}; + uint64_t dummyD3DTexture{}; + uint64_t dummyD3DTextureStaging{}; Gmm *gmm = nullptr; MockGmmResourceInfo *mockGmmResInfo = nullptr; diff --git a/opencl/test/unit_test/gtpin/gtpin_tests.cpp b/opencl/test/unit_test/gtpin/gtpin_tests.cpp index f680c13eed..78e983b804 100644 --- a/opencl/test/unit_test/gtpin/gtpin_tests.cpp +++ b/opencl/test/unit_test/gtpin/gtpin_tests.cpp @@ -2018,7 +2018,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenKernelDoesNotHaveDebugDataT static size_t debugDataSize = 0; gtpinCallbacks.onContextCreate = onContextCreate; gtpinCallbacks.onContextDestroy = onContextDestroy; - gtpinCallbacks.onKernelCreate = [](context_handle_t context, const instrument_params_in_t *paramsIn, instrument_params_out_t *paramsOut) { + gtpinCallbacks.onKernelCreate = [](context_handle_t context, const instrument_params_in_t *paramsIn, instrument_params_out_t *paramsOut) -> void { paramsOut->inst_kernel_binary = const_cast(paramsIn->orig_kernel_binary); paramsOut->inst_kernel_size = paramsIn->orig_kernel_size; paramsOut->kernel_id = paramsIn->igc_hash_id; @@ -2045,7 +2045,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenKernelHasDebugDataThenCorre size_t dummyDebugDataSize = 0x2245; gtpinCallbacks.onContextCreate = onContextCreate; gtpinCallbacks.onContextDestroy = onContextDestroy; - gtpinCallbacks.onKernelCreate = [](context_handle_t context, const instrument_params_in_t *paramsIn, instrument_params_out_t *paramsOut) { + gtpinCallbacks.onKernelCreate = [](context_handle_t context, const instrument_params_in_t *paramsIn, instrument_params_out_t *paramsOut) -> void { paramsOut->inst_kernel_binary = const_cast(paramsIn->orig_kernel_binary); paramsOut->inst_kernel_size = paramsIn->orig_kernel_size; paramsOut->kernel_id = paramsIn->igc_hash_id; @@ -2072,7 +2072,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenInstrumentedBinaryIsZebinTh static size_t debugDataSize = 0; gtpinCallbacks.onContextCreate = onContextCreate; gtpinCallbacks.onContextDestroy = onContextDestroy; - gtpinCallbacks.onKernelCreate = [](context_handle_t context, const instrument_params_in_t *paramsIn, instrument_params_out_t *paramsOut) { + gtpinCallbacks.onKernelCreate = [](context_handle_t context, const instrument_params_in_t *paramsIn, instrument_params_out_t *paramsOut) -> void { debugDataPtr = const_cast(paramsIn->debug_data); debugDataSize = paramsIn->debug_data_size; }; @@ -2106,7 +2106,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenInstrumentedBinaryIsZebinTh HWTEST_F(GTPinTests, givenGtPinInitializedWhenSubmittingKernelCommandThenFlushedTaskCountIsNotified) { auto mockCmdQ = std::make_unique>(pContext, pDevice, nullptr); - auto onKernelSubmitFnc = [](command_buffer_handle_t cb, uint64_t kernelId, uint32_t *entryOffset, resource_handle_t *resource) { return; }; + auto onKernelSubmitFnc = [](command_buffer_handle_t cb, uint64_t kernelId, uint32_t *entryOffset, resource_handle_t *resource) -> void {}; gtpinCallbacks.onContextCreate = onContextCreate; gtpinCallbacks.onContextDestroy = onContextDestroy; @@ -2420,7 +2420,7 @@ HWTEST_F(GTPinTestsWithLocalMemory, givenGtPinCanUseSharedAllocationWhenGtpinNot gtpinCallbacks.onContextCreate = onContextCreate; gtpinCallbacks.onContextDestroy = onContextDestroy; gtpinCallbacks.onKernelCreate = onKernelCreate; - gtpinCallbacks.onKernelSubmit = [](command_buffer_handle_t cb, uint64_t kernelId, uint32_t *entryOffset, resource_handle_t *resource) { + gtpinCallbacks.onKernelSubmit = [](command_buffer_handle_t cb, uint64_t kernelId, uint32_t *entryOffset, resource_handle_t *resource) -> void { auto allocData = std::make_unique(0); auto mockGA = std::make_unique(); allocData->gpuAllocations.addAllocation(mockGA.get()); diff --git a/opencl/test/unit_test/mock_gl/windows/mock_opengl32.cpp b/opencl/test/unit_test/mock_gl/windows/mock_opengl32.cpp index a89ae95c00..2ad46915e5 100644 --- a/opencl/test/unit_test/mock_gl/windows/mock_opengl32.cpp +++ b/opencl/test/unit_test/mock_gl/windows/mock_opengl32.cpp @@ -215,11 +215,11 @@ BOOL WINAPI wglMakeCurrent(HDC arg1, HGLRC arg2) { } return (GLboolean)1; }; -void *WINAPI mockLoader(const char *name) { +PROC mockLoader(const char *name) { if (strcmp(name, "realFunction") == 0) { - return reinterpret_cast(*realFunction); + return reinterpret_cast(*realFunction); } - return nullptr; + return 0u; }; void resetParam(const char *name) { if (strcmp(name, "glAcquireSharedBufferCalled") == 0) { diff --git a/opencl/test/unit_test/os_interface/mock_performance_counters.cpp b/opencl/test/unit_test/os_interface/mock_performance_counters.cpp index 05b1e93303..f5bc0bfa8c 100644 --- a/opencl/test/unit_test/os_interface/mock_performance_counters.cpp +++ b/opencl/test/unit_test/os_interface/mock_performance_counters.cpp @@ -332,7 +332,7 @@ StatusCode MockMetricsLibraryValidInterface::getData(GetReportData_1_0 *data) { ////////////////////////////////////////////////////// void PerformanceCountersDeviceFixture::setUp() { createFunc = Device::createPerformanceCountersFunc; - Device::createPerformanceCountersFunc = [](Device *) { return MockPerformanceCounters::create(); }; + Device::createPerformanceCountersFunc = [](Device *) -> std::unique_ptr { return MockPerformanceCounters::create(); }; } ////////////////////////////////////////////////////// diff --git a/opencl/test/unit_test/program/program_tests.cpp b/opencl/test/unit_test/program/program_tests.cpp index 02f9e443f1..ae657d6450 100644 --- a/opencl/test/unit_test/program/program_tests.cpp +++ b/opencl/test/unit_test/program/program_tests.cpp @@ -2527,7 +2527,7 @@ TEST_F(ProgramTests, givenProgramWithSpirvWhenRebuildProgramIsCalledThenSpirvPat debugVars.receivedInput = &receivedInput; debugVars.forceBuildFailure = true; gEnvironment->igcPushDebugVars(debugVars); - std::unique_ptr igcDebugVarsAutoPop{&gEnvironment, [](void *) { gEnvironment->igcPopDebugVars(); }}; + std::unique_ptr igcDebugVarsAutoPop{&gEnvironment, [](void *) -> void { gEnvironment->igcPopDebugVars(); }}; auto program = clUniquePtr(new MockProgram(toClDeviceVector(*pClDevice))); uint32_t spirv[16] = {0x03022307, 0x23471113, 0x17192329}; @@ -2625,7 +2625,7 @@ TEST_F(ProgramTests, whenRebuildingProgramThenStoreDeviceBinaryProperly) { debugVars.binaryToReturn = binaryToReturn; debugVars.binaryToReturnSize = sizeof(binaryToReturn); gEnvironment->igcPushDebugVars(debugVars); - std::unique_ptr igcDebugVarsAutoPop{&gEnvironment, [](void *) { gEnvironment->igcPopDebugVars(); }}; + std::unique_ptr igcDebugVarsAutoPop{&gEnvironment, [](void *) -> void { gEnvironment->igcPopDebugVars(); }}; auto program = clUniquePtr(new MockProgram(toClDeviceVector(*pClDevice))); uint32_t ir[16] = {0x03022307, 0x23471113, 0x17192329}; diff --git a/opencl/test/unit_test/sharings/gl/windows/gl_sharing_tests.cpp b/opencl/test/unit_test/sharings/gl/windows/gl_sharing_tests.cpp index 60339e1347..65b0257475 100644 --- a/opencl/test/unit_test/sharings/gl/windows/gl_sharing_tests.cpp +++ b/opencl/test/unit_test/sharings/gl/windows/gl_sharing_tests.cpp @@ -675,7 +675,7 @@ TEST(glSharingBasicTest, givenWhenCheckGLSharingSupportedThenReturnTrue) { } TEST(glSharingBasicTest, givenVendorisNullWhenCheckGLSharingSupportedThenReturnFalse) { - auto invalidGetStringFcn = [](GLenum name) { + auto invalidGetStringFcn = [](GLenum name) -> const GLubyte * { return (const GLubyte *)""; }; diff --git a/shared/source/utilities/cpu_info.h b/shared/source/utilities/cpu_info.h index 87363ff868..07bc69a3ca 100644 --- a/shared/source/utilities/cpu_info.h +++ b/shared/source/utilities/cpu_info.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -65,7 +65,7 @@ struct CpuInfo { } static void (*cpuidexFunc)(int *, int, int); - static void (*cpuidFunc)(int[4], int); + static void (*cpuidFunc)(int *, int); static void (*getCpuFlagsFunc)(std::string &); protected: diff --git a/shared/source/utilities/windows/cpu_info.cpp b/shared/source/utilities/windows/cpu_info.cpp index f715407bab..3b37783e10 100644 --- a/shared/source/utilities/windows/cpu_info.cpp +++ b/shared/source/utilities/windows/cpu_info.cpp @@ -11,7 +11,7 @@ namespace NEO { -void cpuidWindowsWrapper(int cpuInfo[4], int functionId) { +void cpuidWindowsWrapper(int *cpuInfo, int functionId) { __cpuid(cpuInfo, functionId); } @@ -22,7 +22,7 @@ void cpuidexWindowsWrapper(int *cpuInfo, int functionId, int subfunctionId) { void getCpuFlagsWindows(std::string &cpuFlags) {} void (*CpuInfo::cpuidexFunc)(int *, int, int) = cpuidexWindowsWrapper; -void (*CpuInfo::cpuidFunc)(int[4], int) = cpuidWindowsWrapper; +void (*CpuInfo::cpuidFunc)(int *, int) = cpuidWindowsWrapper; void (*CpuInfo::getCpuFlagsFunc)(std::string &) = getCpuFlagsWindows; const CpuInfo CpuInfo::instance; diff --git a/shared/test/unit_test/os_interface/windows/um_km_data_translator_tests.cpp b/shared/test/unit_test/os_interface/windows/um_km_data_translator_tests.cpp index e01bbb602e..a4dc03e980 100644 --- a/shared/test/unit_test/os_interface/windows/um_km_data_translator_tests.cpp +++ b/shared/test/unit_test/os_interface/windows/um_km_data_translator_tests.cpp @@ -252,7 +252,7 @@ TEST(WslUmKmDataTranslator, whenQueryingForTranslationThenQueryIsForwardedToWslC auto gmmHandleAllocator = translator->createGmmHandleAllocator(); ASSERT_NE(nullptr, gmmHandleAllocator); gmmHandleAllocator->getHandleSize(); - UmKmDataTempStorage gmmResInfo; + UmKmDataTempStorage gmmResInfo{}; EXPECT_EQ(sizeof(GmmResourceInfoWinStruct), gmmHandleAllocator->getHandleSize()); auto gmmResourceInfoHandle = gmmHandleAllocator->createHandle(reinterpret_cast(gmmResInfo.data())); ASSERT_NE(nullptr, gmmResourceInfoHandle); diff --git a/shared/test/unit_test/utilities/x86_64/cpuinfo_tests_x86_64.cpp b/shared/test/unit_test/utilities/x86_64/cpuinfo_tests_x86_64.cpp index b92f364e7b..2c75578b57 100644 --- a/shared/test/unit_test/utilities/x86_64/cpuinfo_tests_x86_64.cpp +++ b/shared/test/unit_test/utilities/x86_64/cpuinfo_tests_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2022 Intel Corporation + * Copyright (C) 2019-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -11,28 +11,28 @@ using namespace NEO; -void mockCpuidEnableAll(int cpuInfo[4], int functionId) { +void mockCpuidEnableAll(int *cpuInfo, int functionId) { cpuInfo[0] = -1; cpuInfo[1] = -1; cpuInfo[2] = -1; cpuInfo[3] = -1; } -void mockCpuidFunctionAvailableDisableAll(int cpuInfo[4], int functionId) { +void mockCpuidFunctionAvailableDisableAll(int *cpuInfo, int functionId) { cpuInfo[0] = -1; cpuInfo[1] = 0; cpuInfo[2] = 0; cpuInfo[3] = 0; } -void mockCpuidFunctionNotAvailableDisableAll(int cpuInfo[4], int functionId) { +void mockCpuidFunctionNotAvailableDisableAll(int *cpuInfo, int functionId) { cpuInfo[0] = 0; cpuInfo[1] = 0; cpuInfo[2] = 0; cpuInfo[3] = 0; } -void mockCpuidReport36BitVirtualAddressSize(int cpuInfo[4], int functionId) { +void mockCpuidReport36BitVirtualAddressSize(int *cpuInfo, int functionId) { if (static_cast(functionId) == 0x80000008) { cpuInfo[0] = 36 << 8; cpuInfo[1] = 0; @@ -44,7 +44,7 @@ void mockCpuidReport36BitVirtualAddressSize(int cpuInfo[4], int functionId) { } TEST(CpuInfoTest, giveFunctionIsNotAvailableWhenFeatureIsNotSupportedThenMaskBitIsOff) { - void (*defaultCpuidFunc)(int[4], int) = CpuInfo::cpuidFunc; + void (*defaultCpuidFunc)(int *, int) = CpuInfo::cpuidFunc; CpuInfo::cpuidFunc = mockCpuidFunctionNotAvailableDisableAll; CpuInfo testCpuInfo; @@ -56,7 +56,7 @@ TEST(CpuInfoTest, giveFunctionIsNotAvailableWhenFeatureIsNotSupportedThenMaskBit } TEST(CpuInfoTest, giveFunctionIsAvailableWhenFeatureIsNotSupportedThenMaskBitIsOff) { - void (*defaultCpuidFunc)(int[4], int) = CpuInfo::cpuidFunc; + void (*defaultCpuidFunc)(int *, int) = CpuInfo::cpuidFunc; CpuInfo::cpuidFunc = mockCpuidFunctionAvailableDisableAll; CpuInfo testCpuInfo; @@ -68,7 +68,7 @@ TEST(CpuInfoTest, giveFunctionIsAvailableWhenFeatureIsNotSupportedThenMaskBitIsO } TEST(CpuInfoTest, whenFeatureIsSupportedThenMaskBitIsOn) { - void (*defaultCpuidFunc)(int[4], int) = CpuInfo::cpuidFunc; + void (*defaultCpuidFunc)(int *, int) = CpuInfo::cpuidFunc; CpuInfo::cpuidFunc = mockCpuidEnableAll; CpuInfo testCpuInfo; @@ -80,7 +80,7 @@ TEST(CpuInfoTest, whenFeatureIsSupportedThenMaskBitIsOn) { } TEST(CpuInfoTest, WhenGettingVirtualAddressSizeThenCorrectResultIsReturned) { - void (*defaultCpuidFunc)(int[4], int) = CpuInfo::cpuidFunc; + void (*defaultCpuidFunc)(int *, int) = CpuInfo::cpuidFunc; CpuInfo::cpuidFunc = mockCpuidReport36BitVirtualAddressSize; CpuInfo testCpuInfo;