From 214585eb1bbe422ed3769d898ee9d9435353aabf Mon Sep 17 00:00:00 2001 From: Filip Hazubski Date: Tue, 24 Mar 2020 12:17:13 +0100 Subject: [PATCH] Add REQUIRE_SVM_OR_SKIP helper macro for tests Change-Id: I07fbde14a0d3be801087561b8460b15b857c3f2e Signed-off-by: Filip Hazubski --- .../cl_set_kernel_arg_svm_pointer_tests.inl | 5 ++-- .../api/cl_set_kernel_exec_info_tests.inl | 4 +-- .../test/unit_test/api/cl_svm_alloc_tests.inl | 5 ++-- .../api/cl_unified_shared_memory_tests.inl | 9 ++---- .../command_queue/enqueue_handler_tests.cpp | 5 ++-- .../enqueue_svm_mem_fill_tests.cpp | 6 ++-- .../command_queue/enqueue_svm_tests.cpp | 9 ++---- .../command_queue/zero_size_enqueue_tests.cpp | 17 ++++------- .../driver_diagnostics_enqueue_tests.cpp | 5 ++-- .../unit_test/kernel/clone_kernel_tests.cpp | 5 ++-- opencl/test/unit_test/kernel/kernel_tests.cpp | 17 ++++------- .../mem_obj/buffer_set_arg_tests.cpp | 5 ++-- .../test/unit_test/test_macros/CMakeLists.txt | 20 +++++++++++++ .../unit_test/test_macros/test_checks.cpp | 16 +++++++++++ .../test/unit_test/test_macros/test_checks.h | 19 +++++++++++++ .../cpu_page_fault_manager_tests.cpp | 5 ++-- .../test/unit_test/test_macros/CMakeLists.txt | 13 +++++++++ .../unit_test/test_macros/test_checks.cpp | 22 +++++++++++++++ .../test/unit_test/test_macros/test_checks.h | 28 +++++++++++++++++++ 19 files changed, 151 insertions(+), 64 deletions(-) create mode 100644 opencl/test/unit_test/test_macros/CMakeLists.txt create mode 100644 opencl/test/unit_test/test_macros/test_checks.cpp create mode 100644 opencl/test/unit_test/test_macros/test_checks.h create mode 100644 shared/test/unit_test/test_macros/CMakeLists.txt create mode 100644 shared/test/unit_test/test_macros/test_checks.cpp create mode 100644 shared/test/unit_test/test_macros/test_checks.h diff --git a/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl b/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl index b845826521..4d796aa12e 100644 --- a/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl +++ b/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl @@ -9,6 +9,7 @@ #include "opencl/test/unit_test/fixtures/device_fixture.h" #include "opencl/test/unit_test/mocks/mock_kernel.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" #include "cl_api_tests.h" @@ -25,9 +26,7 @@ class KernelArgSvmFixture : public ApiFixture<>, public DeviceFixture { void SetUp() override { ApiFixture::SetUp(); DeviceFixture::SetUp(); - if (defaultHwInfo->capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(defaultHwInfo); // define kernel info pKernelInfo = std::make_unique(); diff --git a/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl b/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl index 67ae4042d3..22f3e4f5b3 100644 --- a/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl +++ b/opencl/test/unit_test/api/cl_set_kernel_exec_info_tests.inl @@ -17,9 +17,7 @@ class KernelExecInfoFixture : public ApiFixture<> { protected: void SetUp() override { ApiFixture::SetUp(); - if (defaultHwInfo->capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(defaultHwInfo); pKernelInfo = std::make_unique(); diff --git a/opencl/test/unit_test/api/cl_svm_alloc_tests.inl b/opencl/test/unit_test/api/cl_svm_alloc_tests.inl index f1883cf50e..3106baf149 100644 --- a/opencl/test/unit_test/api/cl_svm_alloc_tests.inl +++ b/opencl/test/unit_test/api/cl_svm_alloc_tests.inl @@ -10,6 +10,7 @@ #include "opencl/source/context/context.h" #include "opencl/test/unit_test/mocks/mock_platform.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "cl_api_tests.h" @@ -24,9 +25,7 @@ class clSVMAllocTemplateTests : public ApiFixture<>, public: void SetUp() override { ApiFixture::SetUp(); - if (!pPlatform->getClDevice(testedRootDeviceIndex)->getHardwareInfo().capabilityTable.ftrSvm) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pPlatform->getClDevice(testedRootDeviceIndex)); } void TearDown() override { diff --git a/opencl/test/unit_test/api/cl_unified_shared_memory_tests.inl b/opencl/test/unit_test/api/cl_unified_shared_memory_tests.inl index 3bd196d7bd..0ac3945584 100644 --- a/opencl/test/unit_test/api/cl_unified_shared_memory_tests.inl +++ b/opencl/test/unit_test/api/cl_unified_shared_memory_tests.inl @@ -12,6 +12,7 @@ #include "opencl/test/unit_test/command_queue/command_queue_fixture.h" #include "opencl/test/unit_test/mocks/mock_context.h" #include "opencl/test/unit_test/mocks/mock_kernel.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" using namespace NEO; @@ -588,9 +589,7 @@ TEST(clUnifiedSharedMemoryTests, whenDeviceSupportSharedMemoryAllocationsAndSyst DebugManager.flags.EnableSharedSystemUsmSupport.set(1u); auto mockContext = std::make_unique(); - if (mockContext->getDevice(0u)->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(mockContext->getDevice(0u)); MockKernelWithInternals mockKernel(*mockContext->getDevice(0u), mockContext.get(), true); @@ -608,9 +607,7 @@ TEST(clUnifiedSharedMemoryTests, whenDeviceSupportSharedMemoryAllocationsAndSyst TEST(clUnifiedSharedMemoryTests, whenClSetKernelArgMemPointerINTELisCalledWithValidUnifiedMemoryAllocationThenProperFieldsAreSet) { auto mockContext = std::make_unique(); - if (mockContext->getDevice(0u)->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(mockContext->getDevice(0u)); cl_int retVal = CL_SUCCESS; auto unfiedMemoryDeviceAllocation = clDeviceMemAllocINTEL(mockContext.get(), mockContext->getDevice(0u), nullptr, 4, 0, &retVal); diff --git a/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp index e3371fbf0b..d95687157d 100644 --- a/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_handler_tests.cpp @@ -22,6 +22,7 @@ #include "opencl/test/unit_test/mocks/mock_kernel.h" #include "opencl/test/unit_test/mocks/mock_mdi.h" #include "opencl/test/unit_test/mocks/mock_platform.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" using namespace NEO; @@ -494,9 +495,7 @@ HWTEST_F(EnqueueHandlerTest, givenEnqueueHandlerWhenSubCaptureIsOnThenActivateSu } HWTEST_F(EnqueueHandlerTest, givenEnqueueHandlerWhenClSetKernelExecInfoAlreadysetKernelThreadArbitrationPolicyThenRequiredThreadArbitrationPolicyIsSetProperly) { - if (pClDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pClDevice); DebugManagerStateRestore stateRestore; DebugManager.flags.AUBDumpSubCaptureMode.set(static_cast(AubSubCaptureManager::SubCaptureMode::Filter)); diff --git a/opencl/test/unit_test/command_queue/enqueue_svm_mem_fill_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_svm_mem_fill_tests.cpp index f9f0e1567a..f5de5bc0ca 100644 --- a/opencl/test/unit_test/command_queue/enqueue_svm_mem_fill_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_svm_mem_fill_tests.cpp @@ -13,6 +13,7 @@ #include "opencl/test/unit_test/fixtures/device_fixture.h" #include "opencl/test/unit_test/mocks/mock_builtin_dispatch_info_builder.h" #include "opencl/test/unit_test/mocks/mock_builtins.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" using namespace NEO; @@ -28,10 +29,7 @@ struct EnqueueSvmMemFillTest : public DeviceFixture, void SetUp() override { DeviceFixture::SetUp(); CommandQueueFixture::SetUp(pClDevice, 0); - const HardwareInfo &hwInfo = pDevice->getHardwareInfo(); - if (!hwInfo.capabilityTable.ftrSvm) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); patternSize = (size_t)GetParam(); ASSERT_TRUE((0 < patternSize) && (patternSize <= 128)); SVMAllocsManager::SvmAllocationProperties svmProperties; 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 28eda5873e..3c09063dd2 100644 --- a/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp @@ -26,6 +26,7 @@ #include "opencl/test/unit_test/mocks/mock_context.h" #include "opencl/test/unit_test/mocks/mock_kernel.h" #include "opencl/test/unit_test/mocks/mock_svm_manager.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" using namespace NEO; @@ -39,9 +40,7 @@ struct EnqueueSvmTest : public DeviceFixture, } void SetUp() override { - if (defaultHwInfo->capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(defaultHwInfo); DeviceFixture::SetUp(); CommandQueueFixture::SetUp(pClDevice, 0); ptrSVM = context->getSVMAllocsManager()->createSVMAlloc(pDevice->getRootDeviceIndex(), 256, {}); @@ -894,9 +893,7 @@ TEST(CreateSvmAllocTests, givenVariousSvmAllocationPropertiesWhenAllocatingSvmTh struct EnqueueSvmTestLocalMemory : public DeviceFixture, public ::testing::Test { void SetUp() override { - if (defaultHwInfo->capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(defaultHwInfo); dbgRestore = std::make_unique(); DebugManager.flags.EnableLocalMemory.set(1); diff --git a/opencl/test/unit_test/command_queue/zero_size_enqueue_tests.cpp b/opencl/test/unit_test/command_queue/zero_size_enqueue_tests.cpp index d9cd6fbc1b..626b15e439 100644 --- a/opencl/test/unit_test/command_queue/zero_size_enqueue_tests.cpp +++ b/opencl/test/unit_test/command_queue/zero_size_enqueue_tests.cpp @@ -14,6 +14,7 @@ #include "opencl/test/unit_test/mocks/mock_command_queue.h" #include "opencl/test/unit_test/mocks/mock_context.h" #include "opencl/test/unit_test/mocks/mock_kernel.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" using namespace NEO; @@ -778,9 +779,7 @@ HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenFillingIm } HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenCopyingSvmMemThenCommandMarkerShouldBeEnqueued) { - if (pDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); auto mockCmdQ = std::unique_ptr>(new MockCommandQueueHw(&context, pClDevice, 0)); void *pSrcSVM = context.getSVMAllocsManager()->createSVMAlloc(pDevice->getRootDeviceIndex(), 256, {}); @@ -794,9 +793,7 @@ HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenCopyingSv } HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenCopyingSvmMemThenEventCommandTypeShouldBeUnchanged) { - if (pDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); auto mockCmdQ = std::unique_ptr>(new MockCommandQueueHw(&context, pClDevice, 0)); cl_event event; @@ -820,9 +817,7 @@ HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenCopyingSv } HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenFillingSvmMemThenCommandMarkerShouldBeEnqueued) { - if (pDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); auto mockCmdQ = std::unique_ptr>(new MockCommandQueueHw(&context, pClDevice, 0)); void *pSVM = context.getSVMAllocsManager()->createSVMAlloc(pDevice->getRootDeviceIndex(), 256, {}); @@ -835,9 +830,7 @@ HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenFillingSv } HWTEST_F(ZeroSizeEnqueueHandlerTest, GivenZeroSizeEnqueueIsDetectedWhenFillingSvmMemThenEventCommandTypeShouldBeUnchanged) { - if (pDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); auto mockCmdQ = std::unique_ptr>(new MockCommandQueueHw(&context, pClDevice, 0)); cl_event event; diff --git a/opencl/test/unit_test/context/driver_diagnostics_enqueue_tests.cpp b/opencl/test/unit_test/context/driver_diagnostics_enqueue_tests.cpp index 7989db8d47..12f22c71a6 100644 --- a/opencl/test/unit_test/context/driver_diagnostics_enqueue_tests.cpp +++ b/opencl/test/unit_test/context/driver_diagnostics_enqueue_tests.cpp @@ -11,6 +11,7 @@ #include "opencl/source/event/user_event.h" #include "opencl/test/unit_test/context/driver_diagnostics_tests.h" #include "opencl/test/unit_test/fixtures/buffer_fixture.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" using namespace NEO; @@ -662,9 +663,7 @@ TEST_P(PerformanceHintEnqueueMapTest, GivenZeroCopyFlagWhenEnqueueUnmapIsCalling } TEST_F(PerformanceHintEnqueueTest, GivenSVMPointerWhenEnqueueSVMMapIsCallingThenContextProvidesProperHint) { - if (!pPlatform->getClDevice(0)->getHardwareInfo().capabilityTable.ftrSvm) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pPlatform->getClDevice(0)); void *svmPtr = context->getSVMAllocsManager()->createSVMAlloc(0, 256, {}); pCmdQ->enqueueSVMMap(CL_FALSE, 0, svmPtr, 256, 0, nullptr, nullptr, false); diff --git a/opencl/test/unit_test/kernel/clone_kernel_tests.cpp b/opencl/test/unit_test/kernel/clone_kernel_tests.cpp index d80359fcd4..8d72aefa27 100644 --- a/opencl/test/unit_test/kernel/clone_kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/clone_kernel_tests.cpp @@ -21,6 +21,7 @@ #include "opencl/test/unit_test/mocks/mock_pipe.h" #include "opencl/test/unit_test/mocks/mock_program.h" #include "opencl/test/unit_test/mocks/mock_sampler.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" #include "CL/cl.h" @@ -510,9 +511,7 @@ TEST_F(CloneKernelTest, cloneKernelWithArgImmediate) { } TEST_F(CloneKernelTest, cloneKernelWithExecInfo) { - if (!pDevice->getHardwareInfo().capabilityTable.ftrSvm) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); void *ptrSVM = pContext->getSVMAllocsManager()->createSVMAlloc(pDevice->getRootDeviceIndex(), 256, {}); ASSERT_NE(nullptr, ptrSVM); diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index 66fabea4aa..ee2b28e273 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -39,6 +39,7 @@ #include "opencl/test/unit_test/mocks/mock_program.h" #include "opencl/test/unit_test/program/program_from_binary.h" #include "opencl/test/unit_test/program/program_tests.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" #include @@ -1962,9 +1963,7 @@ HWTEST_F(KernelResidencyTest, givenKernelWhenSetKernelExecInfoWithUnifiedMemoryI } HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemoryIsCalledThenAllocationIsStoredWithinKernel) { - if (pClDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pClDevice); MockKernelWithInternals mockKernel(*this->pClDevice); auto svmAllocationsManager = mockKernel.mockContext->getSVMAllocsManager(); @@ -1988,9 +1987,7 @@ HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemor } HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemoryDevicePropertyIsCalledThenKernelControlIsChanged) { - if (pClDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pClDevice); MockKernelWithInternals mockKernel(*this->pClDevice); cl_bool enableIndirectDeviceAccess = CL_TRUE; auto status = clSetKernelExecInfo(mockKernel.mockKernel, CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL, sizeof(cl_bool), &enableIndirectDeviceAccess); @@ -2003,9 +2000,7 @@ HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemor } HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemoryHostPropertyIsCalledThenKernelControlIsChanged) { - if (pClDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pClDevice); MockKernelWithInternals mockKernel(*this->pClDevice); cl_bool enableIndirectHostAccess = CL_TRUE; auto status = clSetKernelExecInfo(mockKernel.mockKernel, CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL, sizeof(cl_bool), &enableIndirectHostAccess); @@ -2018,9 +2013,7 @@ HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemor } HWTEST_F(KernelResidencyTest, givenKernelWhenclSetKernelExecInfoWithUnifiedMemorySharedPropertyIsCalledThenKernelControlIsChanged) { - if (pClDevice->getHardwareInfo().capabilityTable.ftrSvm == false) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pClDevice); MockKernelWithInternals mockKernel(*this->pClDevice); cl_bool enableIndirectSharedAccess = CL_TRUE; auto status = clSetKernelExecInfo(mockKernel.mockKernel, CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL, sizeof(cl_bool), &enableIndirectSharedAccess); diff --git a/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp index 8c39a61c67..50f38e6ddf 100644 --- a/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp @@ -18,6 +18,7 @@ #include "opencl/test/unit_test/fixtures/device_fixture.h" #include "opencl/test/unit_test/mocks/mock_kernel.h" #include "opencl/test/unit_test/mocks/mock_program.h" +#include "opencl/test/unit_test/test_macros/test_checks.h" #include "test.h" #include "gtest/gtest.h" @@ -289,9 +290,7 @@ TEST_F(BufferSetArgTest, clSetKernelArgBuffer) { } TEST_F(BufferSetArgTest, clSetKernelArgSVMPointer) { - if (!pDevice->getHardwareInfo().capabilityTable.ftrSvm) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(pDevice); void *ptrSVM = pContext->getSVMAllocsManager()->createSVMAlloc(pDevice->getRootDeviceIndex(), 256, {}); EXPECT_NE(nullptr, ptrSVM); diff --git a/opencl/test/unit_test/test_macros/CMakeLists.txt b/opencl/test/unit_test/test_macros/CMakeLists.txt new file mode 100644 index 0000000000..10250521de --- /dev/null +++ b/opencl/test/unit_test/test_macros/CMakeLists.txt @@ -0,0 +1,20 @@ +# +# Copyright (C) 2020 Intel Corporation +# +# SPDX-License-Identifier: MIT +# + +set(IGDRCL_SRCS_test_macros + ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_SOURCE_DIR}/test_checks.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/test_checks.h +) +target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_test_macros}) + +get_property(NEO_CORE_test_macros GLOBAL PROPERTY NEO_CORE_test_macros) +list(APPEND IGDRCL_SRCS_test_macros + ${NEO_CORE_test_macros} +) + +target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_test_macros}) +set_property(GLOBAL PROPERTY IGDRCL_SRCS_test_macros ${IGDRCL_SRCS_test_macros}) \ No newline at end of file diff --git a/opencl/test/unit_test/test_macros/test_checks.cpp b/opencl/test/unit_test/test_macros/test_checks.cpp new file mode 100644 index 0000000000..17dd24a811 --- /dev/null +++ b/opencl/test/unit_test/test_macros/test_checks.cpp @@ -0,0 +1,16 @@ +/* + * Copyright (C) 2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "opencl/test/unit_test/test_macros/test_checks.h" + +#include "opencl/source/cl_device/cl_device.h" + +using namespace NEO; + +bool TestChecks::supportsSvm(const ClDevice *pClDevice) { + return supportsSvm(&pClDevice->getDevice()); +} diff --git a/opencl/test/unit_test/test_macros/test_checks.h b/opencl/test/unit_test/test_macros/test_checks.h new file mode 100644 index 0000000000..171ad9f8b7 --- /dev/null +++ b/opencl/test/unit_test/test_macros/test_checks.h @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#pragma once + +namespace NEO { +class ClDevice; + +namespace TestChecks { +bool supportsSvm(const ClDevice *pClDevice); +} // namespace TestChecks + +} // namespace NEO + +#include "shared/test/unit_test/test_macros/test_checks.h" diff --git a/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp b/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp index 72ae055f6f..c7bb757654 100644 --- a/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp +++ b/shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests.cpp @@ -9,6 +9,7 @@ #include "shared/source/memory_manager/unified_memory_manager.h" #include "shared/source/unified_memory/unified_memory.h" #include "shared/test/unit_test/page_fault_manager/cpu_page_fault_manager_tests_fixture.h" +#include "shared/test/unit_test/test_macros/test_checks.h" #include "opencl/test/unit_test/mocks/mock_memory_manager.h" @@ -203,9 +204,7 @@ TEST_F(PageFaultManagerTest, givenTrackedPageFaultAddressWhenVerifyingThenProper TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocWhenSetAubWritableIsCalledThenAllocIsAubWritable) { MockExecutionEnvironment executionEnvironment; - if (!executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo()->capabilityTable.ftrSvm) { - GTEST_SKIP(); - } + REQUIRE_SVM_OR_SKIP(executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo()); void *cmdQ = reinterpret_cast(0xFFFF); auto memoryManager = std::make_unique(executionEnvironment); diff --git a/shared/test/unit_test/test_macros/CMakeLists.txt b/shared/test/unit_test/test_macros/CMakeLists.txt new file mode 100644 index 0000000000..2b8b813642 --- /dev/null +++ b/shared/test/unit_test/test_macros/CMakeLists.txt @@ -0,0 +1,13 @@ +# +# Copyright (C) 2020 Intel Corporation +# +# SPDX-License-Identifier: MIT +# + +set(NEO_CORE_test_macros + ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_SOURCE_DIR}/test_checks.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/test_checks.h +) + +set_property(GLOBAL PROPERTY NEO_CORE_test_macros ${NEO_CORE_test_macros}) diff --git a/shared/test/unit_test/test_macros/test_checks.cpp b/shared/test/unit_test/test_macros/test_checks.cpp new file mode 100644 index 0000000000..115c0c78a9 --- /dev/null +++ b/shared/test/unit_test/test_macros/test_checks.cpp @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "shared/test/unit_test/test_macros/test_checks.h" + +#include "shared/source/device/device.h" + +using namespace NEO; + +bool TestChecks::supportsSvm(const HardwareInfo *pHardwareInfo) { + return pHardwareInfo->capabilityTable.ftrSvm; +} +bool TestChecks::supportsSvm(const std::unique_ptr &pHardwareInfo) { + return supportsSvm(pHardwareInfo.get()); +} +bool TestChecks::supportsSvm(const Device *pDevice) { + return supportsSvm(&pDevice->getHardwareInfo()); +} diff --git a/shared/test/unit_test/test_macros/test_checks.h b/shared/test/unit_test/test_macros/test_checks.h new file mode 100644 index 0000000000..601ac795c6 --- /dev/null +++ b/shared/test/unit_test/test_macros/test_checks.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#pragma once +#include "gtest/gtest.h" + +#include + +namespace NEO { +class Device; +struct HardwareInfo; + +namespace TestChecks { +bool supportsSvm(const HardwareInfo *pHardwareInfo); +bool supportsSvm(const std::unique_ptr &pHardwareInfo); +bool supportsSvm(const Device *pDevice); +} // namespace TestChecks + +} // namespace NEO + +#define REQUIRE_SVM_OR_SKIP(param) \ + if (NEO::TestChecks::supportsSvm(param) == false) { \ + GTEST_SKIP(); \ + }