From 6f26ced3b556d0f19d16889fa092bb7b52089c59 Mon Sep 17 00:00:00 2001 From: Maciej Dziuban Date: Thu, 9 Aug 2018 11:34:50 +0200 Subject: [PATCH] Don't store MockProgram as member of fixture This is to prepare for adding argument to MockProgram constructor. It'll have to be constructed after ExecutionEnvironment creation, for example after DeviceFixture::SetUp. Change-Id: I37b08f814679271820a07fb29cf1fb6b517c8376 Signed-off-by: Maciej Dziuban --- .../accelerators/media_image_arg_tests.cpp | 7 ++-- .../command_stream/aub_subcapture_tests.cpp | 25 +++++------ unit_tests/fixtures/kernel_data_fixture.cpp | 6 +-- unit_tests/fixtures/kernel_data_fixture.h | 3 +- .../kernel/kernel_arg_dev_queue_tests.cpp | 5 ++- .../kernel/kernel_immediate_arg_tests.cpp | 5 ++- unit_tests/kernel/kernel_slm_arg_tests.cpp | 5 ++- unit_tests/kernel/kernel_slm_tests.cpp | 5 ++- unit_tests/kernel/kernel_tests.cpp | 42 ++++++++++--------- .../kernel/kernel_transformable_tests.cpp | 5 ++- unit_tests/mem_obj/image_set_arg_tests.cpp | 8 ++-- unit_tests/profiling/profiling_tests.cpp | 23 +++++----- unit_tests/program/kernel_data.cpp | 8 ++-- unit_tests/program/printf_helper_tests.cpp | 5 ++- unit_tests/sampler/sampler_set_arg_tests.cpp | 19 ++++----- 15 files changed, 92 insertions(+), 79 deletions(-) diff --git a/unit_tests/accelerators/media_image_arg_tests.cpp b/unit_tests/accelerators/media_image_arg_tests.cpp index 5017001e52..084ecf977d 100644 --- a/unit_tests/accelerators/media_image_arg_tests.cpp +++ b/unit_tests/accelerators/media_image_arg_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Intel Corporation + * Copyright (c) 2017 - 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -48,6 +48,7 @@ class MediaImageSetArgTest : public DeviceFixture, void SetUp() override { DeviceFixture::SetUp(); pKernelInfo = KernelInfo::create(); + program = std::make_unique(); kernelHeader.SurfaceStateHeapSize = sizeof(surfaceStateHeap); pKernelInfo->heapInfo.pSsh = surfaceStateHeap; @@ -65,7 +66,7 @@ class MediaImageSetArgTest : public DeviceFixture, pKernelInfo->kernelArgInfo[1].isImage = true; pKernelInfo->kernelArgInfo[0].isImage = true; - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); @@ -88,7 +89,7 @@ class MediaImageSetArgTest : public DeviceFixture, cl_int retVal = CL_SUCCESS; MockContext *context; - MockProgram program; + std::unique_ptr program; MockKernel *pKernel = nullptr; SKernelBinaryHeaderCommon kernelHeader; KernelInfo *pKernelInfo = nullptr; diff --git a/unit_tests/command_stream/aub_subcapture_tests.cpp b/unit_tests/command_stream/aub_subcapture_tests.cpp index 3b23b48e29..981326531c 100644 --- a/unit_tests/command_stream/aub_subcapture_tests.cpp +++ b/unit_tests/command_stream/aub_subcapture_tests.cpp @@ -35,6 +35,7 @@ struct AubSubCaptureTest : public DeviceFixture, public ::testing::Test { void SetUp() override { DeviceFixture::SetUp(); + program = std::make_unique(); kernelInfo.name = "kernel_name"; dbgRestore = new DebugManagerStateRestore(); } @@ -44,7 +45,7 @@ struct AubSubCaptureTest : public DeviceFixture, delete dbgRestore; } - MockProgram program; + std::unique_ptr program; KernelInfo kernelInfo; DebugManagerStateRestore *dbgRestore; }; @@ -151,7 +152,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInFilterModeWhenActivateSubCaptu AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -165,7 +166,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInFilterModeWhenActivateSubCaptu AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -180,7 +181,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInFilterModeWhenActivateSubCaptu AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -195,7 +196,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInFilterModeWhenActivateSubCaptu AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -211,7 +212,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInFilterModeWhenActivateSubCaptu AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -226,7 +227,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInFilterModeWhenActivateSubCaptu AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -252,7 +253,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerWhenSubCaptureKeepsInactiveThenM AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -270,7 +271,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerWhenSubCaptureGetsActiveThenDont AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -288,7 +289,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerWhenSubCaptureKeepsActiveThenDon AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -306,7 +307,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerWhenSubCaptureGetsInactiveThenMa AubSubCaptureManagerMock aubSubCaptureManager(""); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -384,7 +385,7 @@ TEST_F(AubSubCaptureTest, givenSubCaptureManagerInToggleModeWhenGetSubCaptureFil AubSubCaptureManagerMock aubSubCaptureManager("aubfile.aub"); DispatchInfo dispatchInfo; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); std::string externalFileName = ""; diff --git a/unit_tests/fixtures/kernel_data_fixture.cpp b/unit_tests/fixtures/kernel_data_fixture.cpp index 671eb8bec6..60339bb03b 100644 --- a/unit_tests/fixtures/kernel_data_fixture.cpp +++ b/unit_tests/fixtures/kernel_data_fixture.cpp @@ -42,7 +42,7 @@ void KernelDataTest::buildAndDecode() { kernelNameSize + sshSize + dshSize + gshSize + kernelHeapSize + patchListSize; kernelDataSize += sizeof(SPatchDataParameterStream); - program.setDevice(pDevice); + program->setDevice(pDevice); pKernelData = reinterpret_cast(alignedMalloc(kernelDataSize, MemoryConstants::cacheLineSize)); ASSERT_NE(nullptr, pKernelData); @@ -92,11 +92,11 @@ void KernelDataTest::buildAndDecode() { pCurPtr += sizeof(SPatchDataParameterStream); // now build a program with this kernel data - error = program.build(pKernelData, kernelDataSize); + error = program->build(pKernelData, kernelDataSize); EXPECT_EQ(CL_SUCCESS, error); // extract the kernel info - pKernelInfo = program.Program::getKernelInfo(kernelName.c_str()); + pKernelInfo = program->Program::getKernelInfo(kernelName.c_str()); // validate kernel info // vaidate entire set of data diff --git a/unit_tests/fixtures/kernel_data_fixture.h b/unit_tests/fixtures/kernel_data_fixture.h index 2b4a51f047..377be5d592 100644 --- a/unit_tests/fixtures/kernel_data_fixture.h +++ b/unit_tests/fixtures/kernel_data_fixture.h @@ -64,6 +64,7 @@ class KernelDataTest : public testing::Test { void SetUp() override { kernelBinaryHeader.KernelNameSize = kernelNameSize; pDevice = MockDevice::createWithNewExecutionEnvironment(nullptr); + program = std::make_unique(); } void TearDown() override { @@ -97,7 +98,7 @@ class KernelDataTest : public testing::Test { uint64_t shaderHashCode; uint32_t kernelUnpaddedSize; - MockProgram program; + std::unique_ptr program; MockDevice *pDevice; const KernelInfo *pKernelInfo; }; diff --git a/unit_tests/kernel/kernel_arg_dev_queue_tests.cpp b/unit_tests/kernel/kernel_arg_dev_queue_tests.cpp index f414b732d8..5ab5dab84b 100644 --- a/unit_tests/kernel/kernel_arg_dev_queue_tests.cpp +++ b/unit_tests/kernel/kernel_arg_dev_queue_tests.cpp @@ -50,7 +50,8 @@ struct KernelArgDevQueueTest : public DeviceFixture, pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector.push_back(kernelArgPatchInfo); - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + program = std::make_unique(); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); uint8_t pCrossThreadData[crossThreadDataSize]; @@ -80,7 +81,7 @@ struct KernelArgDevQueueTest : public DeviceFixture, static const uint32_t crossThreadDataSize = 0x10; static const char crossThreadDataInit = 0x7e; - MockProgram program; + std::unique_ptr program; DeviceQueue *pDeviceQueue = nullptr; MockKernel *pKernel = nullptr; KernelInfo *pKernelInfo = nullptr; diff --git a/unit_tests/kernel/kernel_immediate_arg_tests.cpp b/unit_tests/kernel/kernel_immediate_arg_tests.cpp index d6efe1de57..d87f92a0fa 100644 --- a/unit_tests/kernel/kernel_immediate_arg_tests.cpp +++ b/unit_tests/kernel/kernel_immediate_arg_tests.cpp @@ -69,7 +69,8 @@ class KernelArgImmediateTest : public Test { pKernelInfo->kernelArgInfo[1].kernelArgPatchInfoVector[0].size = sizeof(T); pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].size = sizeof(T); - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + program = std::make_unique(); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); pKernel->setCrossThreadData(pCrossThreadData, sizeof(pCrossThreadData)); @@ -86,7 +87,7 @@ class KernelArgImmediateTest : public Test { } cl_int retVal = CL_SUCCESS; - MockProgram program; + std::unique_ptr program; MockKernel *pKernel = nullptr; KernelInfo *pKernelInfo; char pCrossThreadData[0x60]; diff --git a/unit_tests/kernel/kernel_slm_arg_tests.cpp b/unit_tests/kernel/kernel_slm_arg_tests.cpp index 68c2ca0dbb..53b63f5461 100644 --- a/unit_tests/kernel/kernel_slm_arg_tests.cpp +++ b/unit_tests/kernel/kernel_slm_arg_tests.cpp @@ -56,7 +56,8 @@ class KernelSlmArgTest : public Test { pKernelInfo->kernelArgInfo[2].slmAlignment = 0x400; pKernelInfo->workloadInfo.slmStaticSize = 3 * KB; - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + program = std::make_unique(); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); pKernel->setKernelArgHandler(0, &Kernel::setArgLocal); @@ -75,7 +76,7 @@ class KernelSlmArgTest : public Test { } cl_int retVal = CL_SUCCESS; - MockProgram program; + std::unique_ptr program; MockKernel *pKernel = nullptr; KernelInfo *pKernelInfo; diff --git a/unit_tests/kernel/kernel_slm_tests.cpp b/unit_tests/kernel/kernel_slm_tests.cpp index 9af884eb53..77b8a1b71a 100644 --- a/unit_tests/kernel/kernel_slm_tests.cpp +++ b/unit_tests/kernel/kernel_slm_tests.cpp @@ -36,6 +36,7 @@ struct KernelSLMAndBarrierTest : public DeviceFixture, public ::testing::TestWithParam { void SetUp() override { DeviceFixture::SetUp(); + program = std::make_unique(); memset(&kernelHeader, 0, sizeof(kernelHeader)); kernelHeader.KernelHeapSize = sizeof(kernelIsa); @@ -66,7 +67,7 @@ struct KernelSLMAndBarrierTest : public DeviceFixture, uint32_t simd; uint32_t numChannels; - MockProgram program; + std::unique_ptr program; SKernelBinaryHeaderCommon kernelHeader; SPatchDataParameterStream dataParameterStream; @@ -90,7 +91,7 @@ HWCMDTEST_P(IGFX_GEN8_CORE, KernelSLMAndBarrierTest, test_SLMProgramming) { executionEnvironment.HasBarriers = 1; kernelInfo.workloadInfo.slmStaticSize = GetParam() * KB; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); // After creating Mock Kernel now create Indirect Heap diff --git a/unit_tests/kernel/kernel_tests.cpp b/unit_tests/kernel/kernel_tests.cpp index a6b1b5078e..320cb12a9b 100644 --- a/unit_tests/kernel/kernel_tests.cpp +++ b/unit_tests/kernel/kernel_tests.cpp @@ -1731,10 +1731,11 @@ HWTEST_F(KernelResidencyTest, test_MakeArgsResidentCheckImageFromImage) { struct KernelExecutionEnvironmentTest : public Test { void SetUp() override { DeviceFixture::SetUp(); + program = std::make_unique(); pKernelInfo = KernelInfo::create(); pKernelInfo->patchInfo.executionEnvironment = &executionEnvironment; - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); } @@ -1745,7 +1746,7 @@ struct KernelExecutionEnvironmentTest : public Test { } MockKernel *pKernel; - MockProgram program; + std::unique_ptr program; KernelInfo *pKernelInfo; SPatchExecutionEnvironment executionEnvironment; }; @@ -1856,6 +1857,7 @@ struct KernelCrossThreadTests : Test { void SetUp() override { DeviceFixture::SetUp(); + program = std::make_unique(); patchDataParameterStream.DataParameterStreamSize = 64 * sizeof(uint8_t); pKernelInfo = KernelInfo::create(); @@ -1869,7 +1871,7 @@ struct KernelCrossThreadTests : Test { DeviceFixture::TearDown(); } - MockProgram program; + std::unique_ptr program; KernelInfo *pKernelInfo = nullptr; SPatchDataParameterStream patchDataParameterStream; SPatchExecutionEnvironment executionEnvironment; @@ -1879,7 +1881,7 @@ TEST_F(KernelCrossThreadTests, globalWorkOffset) { pKernelInfo->workloadInfo.globalWorkOffsetOffsets[1] = 4; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_EQ(&Kernel::dummyPatchLocation, kernel.globalWorkOffsetX); @@ -1892,7 +1894,7 @@ TEST_F(KernelCrossThreadTests, localWorkSize) { pKernelInfo->workloadInfo.localWorkSizeOffsets[0] = 0xc; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_NE(nullptr, kernel.localWorkSizeX); @@ -1905,7 +1907,7 @@ TEST_F(KernelCrossThreadTests, localWorkSize2) { pKernelInfo->workloadInfo.localWorkSizeOffsets2[1] = 0xd; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_EQ(&Kernel::dummyPatchLocation, kernel.localWorkSizeX2); @@ -1918,7 +1920,7 @@ TEST_F(KernelCrossThreadTests, globalWorkSize) { pKernelInfo->workloadInfo.globalWorkSizeOffsets[2] = 8; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_EQ(&Kernel::dummyPatchLocation, kernel.globalWorkSizeX); @@ -1931,7 +1933,7 @@ TEST_F(KernelCrossThreadTests, workDim) { pKernelInfo->workloadInfo.workDimOffset = 12; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_NE(nullptr, kernel.workDim); @@ -1944,7 +1946,7 @@ TEST_F(KernelCrossThreadTests, numWorkGroups) { pKernelInfo->workloadInfo.numWorkGroupsOffset[1] = 1 * sizeof(uint32_t); pKernelInfo->workloadInfo.numWorkGroupsOffset[2] = 2 * sizeof(uint32_t); - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_NE(nullptr, kernel.numWorkGroupsX); @@ -1959,7 +1961,7 @@ TEST_F(KernelCrossThreadTests, enqueuedLocalWorkSize) { pKernelInfo->workloadInfo.enqueuedLocalWorkSizeOffsets[0] = 0; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_NE(nullptr, kernel.enqueuedLocalWorkSizeX); @@ -1972,7 +1974,7 @@ TEST_F(KernelCrossThreadTests, maxWorkGroupSize) { pKernelInfo->workloadInfo.maxWorkGroupSizeOffset = 12; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_NE(nullptr, kernel.maxWorkGroupSize); @@ -1984,7 +1986,7 @@ TEST_F(KernelCrossThreadTests, maxWorkGroupSize) { TEST_F(KernelCrossThreadTests, dataParameterSimdSize) { pKernelInfo->workloadInfo.simdSizeOffset = 16; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); executionEnvironment.CompiledSIMD32 = false; executionEnvironment.CompiledSIMD16 = false; executionEnvironment.CompiledSIMD8 = true; @@ -1998,7 +2000,7 @@ TEST_F(KernelCrossThreadTests, dataParameterSimdSize) { TEST_F(KernelCrossThreadTests, GIVENparentEventOffsetWHENinitializeKernelTHENparentEventInitWithInvalid) { pKernelInfo->workloadInfo.parentEventOffset = 16; - MockKernel kernel(&program, *pKernelInfo, *pDevice); + MockKernel kernel(program.get(), *pKernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); EXPECT_NE(nullptr, kernel.parentEventOffset); @@ -2009,13 +2011,13 @@ TEST_F(KernelCrossThreadTests, GIVENparentEventOffsetWHENinitializeKernelTHENpar TEST_F(KernelCrossThreadTests, kernelAddRefCountToProgram) { - auto refCount = program.getReference(); - MockKernel *kernel = new MockKernel(&program, *pKernelInfo, *pDevice); - auto refCount2 = program.getReference(); + auto refCount = program->getReference(); + MockKernel *kernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); + auto refCount2 = program->getReference(); EXPECT_EQ(refCount2, refCount + 1); delete kernel; - auto refCount3 = program.getReference(); + auto refCount3 = program->getReference(); EXPECT_EQ(refCount, refCount3); } @@ -2023,7 +2025,7 @@ TEST_F(KernelCrossThreadTests, kernelSetsTotalSLMSize) { pKernelInfo->workloadInfo.slmStaticSize = 1024; - MockKernel *kernel = new MockKernel(&program, *pKernelInfo, *pDevice); + MockKernel *kernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); EXPECT_EQ(1024u, kernel->slmTotalSize); @@ -2037,7 +2039,7 @@ TEST_F(KernelCrossThreadTests, givenKernelWithPrivateMemoryWhenItIsCreatedThenCu allocatePrivate.PerThreadPrivateMemorySize = 1; pKernelInfo->patchInfo.pAllocateStatelessPrivateSurface = &allocatePrivate; - MockKernel *kernel = new MockKernel(&program, *pKernelInfo, *pDevice); + MockKernel *kernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); kernel->initialize(); @@ -2056,7 +2058,7 @@ TEST_F(KernelCrossThreadTests, givenKernelWithPrivateMemoryWhenItIsCreatedThenCu TEST_F(KernelCrossThreadTests, givenKernelWithPrefferedWkgMultipleWhenItIsCreatedThenCurbeIsPatchedProperly) { pKernelInfo->workloadInfo.prefferedWkgMultipleOffset = 8; - MockKernel *kernel = new MockKernel(&program, *pKernelInfo, *pDevice); + MockKernel *kernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); kernel->initialize(); diff --git a/unit_tests/kernel/kernel_transformable_tests.cpp b/unit_tests/kernel/kernel_transformable_tests.cpp index 674d71a184..b1c823a57a 100644 --- a/unit_tests/kernel/kernel_transformable_tests.cpp +++ b/unit_tests/kernel/kernel_transformable_tests.cpp @@ -60,7 +60,8 @@ class KernelTransformableTest : public ::testing::Test { pKernelInfo->kernelArgInfo[3].isImage = true; pKernelInfo->argumentsToPatchNum = 4; - pKernel.reset(new MockKernel(&program, *pKernelInfo, *context.getDevice(0))); + program = std::make_unique(); + pKernel.reset(new MockKernel(program.get(), *pKernelInfo, *context.getDevice(0))); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); pKernel->setKernelArgHandler(0, &Kernel::setArgSampler); @@ -81,7 +82,7 @@ class KernelTransformableTest : public ::testing::Test { cl_int retVal = CL_SUCCESS; MockContext context; - MockProgram program; + std::unique_ptr program; std::unique_ptr pKernel; std::unique_ptr pKernelInfo; diff --git a/unit_tests/mem_obj/image_set_arg_tests.cpp b/unit_tests/mem_obj/image_set_arg_tests.cpp index eb606578cf..b452d01563 100644 --- a/unit_tests/mem_obj/image_set_arg_tests.cpp +++ b/unit_tests/mem_obj/image_set_arg_tests.cpp @@ -95,7 +95,8 @@ class ImageSetArgTest : public DeviceFixture, pKernelInfo->kernelArgInfo[1].isImage = true; pKernelInfo->kernelArgInfo[0].isImage = true; - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + program = std::make_unique(); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); @@ -120,7 +121,7 @@ class ImageSetArgTest : public DeviceFixture, cl_int retVal = CL_SUCCESS; MockContext *context; - MockProgram program; + std::unique_ptr program; MockKernel *pKernel = nullptr; SKernelBinaryHeaderCommon kernelHeader; KernelInfo *pKernelInfo = nullptr; @@ -772,7 +773,8 @@ class ImageMediaBlockSetArgTest : public ImageSetArgTest { pKernelInfo->kernelArgInfo[1].isMediaBlockImage = true; pKernelInfo->kernelArgInfo[0].isMediaBlockImage = true; - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + program = std::make_unique(); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); diff --git a/unit_tests/profiling/profiling_tests.cpp b/unit_tests/profiling/profiling_tests.cpp index 1f912d5d30..f9e4f5e703 100644 --- a/unit_tests/profiling/profiling_tests.cpp +++ b/unit_tests/profiling/profiling_tests.cpp @@ -46,6 +46,7 @@ struct ProfilingTests : public CommandEnqueueFixture, public ::testing::Test { void SetUp() override { CommandEnqueueFixture::SetUp(CL_QUEUE_PROFILING_ENABLE); + program = std::make_unique(); memset(&kernelHeader, 0, sizeof(kernelHeader)); kernelHeader.KernelHeapSize = sizeof(kernelIsa); @@ -74,7 +75,7 @@ struct ProfilingTests : public CommandEnqueueFixture, CommandEnqueueFixture::TearDown(); } - MockProgram program; + std::unique_ptr program; SKernelBinaryHeaderCommon kernelHeader; SPatchDataParameterStream dataParameterStream; @@ -130,7 +131,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingTests, GIVENCommandQueueWithProfilingAndFor uint64_t requiredSize = 2 * sizeof(PIPE_CONTROL) + 4 * sizeof(MI_STORE_REGISTER_MEM) + KernelCommandsHelper::getSizeRequiredCS(); requiredSize += 2 * sizeof(GPGPU_WALKER); - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); DispatchInfo dispatchInfo; dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -149,7 +150,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingTests, GIVENCommandQueueWithProfolingWHENWa typedef typename FamilyType::PIPE_CONTROL PIPE_CONTROL; typedef typename FamilyType::GPGPU_WALKER GPGPU_WALKER; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -203,7 +204,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingTests, GIVENCommandQueueWithProflingWHENWal typedef typename FamilyType::MI_STORE_REGISTER_MEM MI_STORE_REGISTER_MEM; typedef typename FamilyType::GPGPU_WALKER GPGPU_WALKER; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -257,7 +258,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingTests, GIVENCommandQueueBlockedWithProfilin typedef typename FamilyType::PIPE_CONTROL PIPE_CONTROL; typedef typename FamilyType::GPGPU_WALKER GPGPU_WALKER; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -313,7 +314,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingTests, GIVENCommandQueueBlockedWithProfilin typedef typename FamilyType::MI_STORE_REGISTER_MEM MI_STORE_REGISTER_MEM; typedef typename FamilyType::GPGPU_WALKER GPGPU_WALKER; - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -543,7 +544,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingWithPerfCountersTests, GIVENCommandQueueWit //end perf cmds requiredSize += 2 * sizeof(PIPE_CONTROL) + 3 * sizeof(MI_STORE_REGISTER_MEM) + OCLRT::INSTR_GENERAL_PURPOSE_COUNTERS_COUNT * sizeof(MI_STORE_REGISTER_MEM) + sizeof(MI_REPORT_PERF_COUNT) + pCmdQ->getPerfCountersUserRegistersNumber() * sizeof(MI_STORE_REGISTER_MEM); - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); DispatchInfo dispatchInfo; dispatchInfo.setKernel(&kernel); MultiDispatchInfo multiDispatchInfo(dispatchInfo); @@ -563,7 +564,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingWithPerfCountersTests, GIVENCommandQueueWit pCmdQ->setPerfCountersEnabled(true, 1); - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -626,7 +627,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingWithPerfCountersTests, GIVENCommandQueueWit pCmdQ->setPerfCountersEnabled(true, 2); - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -689,7 +690,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingWithPerfCountersTests, GIVENCommandQueueBlo pCmdQ->setPerfCountersEnabled(true, 1); - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; @@ -752,7 +753,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, ProfilingWithPerfCountersTests, GIVENCommandQueueWit pCmdQ->setPerfCountersEnabled(true, 1); - MockKernel kernel(&program, kernelInfo, *pDevice); + MockKernel kernel(program.get(), kernelInfo, *pDevice); ASSERT_EQ(CL_SUCCESS, kernel.initialize()); size_t globalOffsets[3] = {0, 0, 0}; diff --git a/unit_tests/program/kernel_data.cpp b/unit_tests/program/kernel_data.cpp index 926f4765ba..740fdb88c7 100644 --- a/unit_tests/program/kernel_data.cpp +++ b/unit_tests/program/kernel_data.cpp @@ -378,7 +378,7 @@ TEST_F(KernelDataTest, ExecutionEnvironmentDoesntHaveDeviceEnqueue) { buildAndDecode(); EXPECT_EQ_CONST(PATCH_TOKEN_EXECUTION_ENVIRONMENT, pKernelInfo->patchInfo.executionEnvironment->Token); - EXPECT_EQ_VAL(0u, program.getParentKernelInfoArray().size()); + EXPECT_EQ_VAL(0u, program->getParentKernelInfoArray().size()); } TEST_F(KernelDataTest, ExecutionEnvironmentHasDeviceEnqueue) { @@ -393,7 +393,7 @@ TEST_F(KernelDataTest, ExecutionEnvironmentHasDeviceEnqueue) { buildAndDecode(); EXPECT_EQ_CONST(PATCH_TOKEN_EXECUTION_ENVIRONMENT, pKernelInfo->patchInfo.executionEnvironment->Token); - EXPECT_EQ_VAL(1u, program.getParentKernelInfoArray().size()); + EXPECT_EQ_VAL(1u, program->getParentKernelInfoArray().size()); } TEST_F(KernelDataTest, ExecutionEnvironmentDoesntRequireSubgroupIndependentForwardProgress) { @@ -408,7 +408,7 @@ TEST_F(KernelDataTest, ExecutionEnvironmentDoesntRequireSubgroupIndependentForwa buildAndDecode(); EXPECT_EQ_CONST(PATCH_TOKEN_EXECUTION_ENVIRONMENT, pKernelInfo->patchInfo.executionEnvironment->Token); - EXPECT_EQ_VAL(0u, program.getSubgroupKernelInfoArray().size()); + EXPECT_EQ_VAL(0u, program->getSubgroupKernelInfoArray().size()); } TEST_F(KernelDataTest, ExecutionEnvironmentRequiresSubgroupIndependentForwardProgress) { @@ -423,7 +423,7 @@ TEST_F(KernelDataTest, ExecutionEnvironmentRequiresSubgroupIndependentForwardPro buildAndDecode(); EXPECT_EQ_CONST(PATCH_TOKEN_EXECUTION_ENVIRONMENT, pKernelInfo->patchInfo.executionEnvironment->Token); - EXPECT_EQ_VAL(1u, program.getSubgroupKernelInfoArray().size()); + EXPECT_EQ_VAL(1u, program->getSubgroupKernelInfoArray().size()); } TEST_F(KernelDataTest, KernelAttributesInfo) { diff --git a/unit_tests/program/printf_helper_tests.cpp b/unit_tests/program/printf_helper_tests.cpp index 55923fe7ca..0031ca227c 100644 --- a/unit_tests/program/printf_helper_tests.cpp +++ b/unit_tests/program/printf_helper_tests.cpp @@ -44,7 +44,7 @@ class PrintFormatterTest : public testing::Test { MockGraphicsAllocation *data; MockKernel *kernel; - MockProgram program; + std::unique_ptr program; KernelInfo *kernelInfo; Device *device; @@ -61,7 +61,8 @@ class PrintFormatterTest : public testing::Test { kernelInfo = KernelInfo::create(); device = MockDevice::createWithNewExecutionEnvironment(nullptr); - kernel = new MockKernel(&program, *kernelInfo, *device); + program = std::make_unique(); + kernel = new MockKernel(program.get(), *kernelInfo, *device); printFormatter = new PrintFormatter(*kernel, *data); diff --git a/unit_tests/sampler/sampler_set_arg_tests.cpp b/unit_tests/sampler/sampler_set_arg_tests.cpp index 081ae723e0..3e1d216237 100644 --- a/unit_tests/sampler/sampler_set_arg_tests.cpp +++ b/unit_tests/sampler/sampler_set_arg_tests.cpp @@ -69,7 +69,8 @@ class SamplerSetArgFixture : public DeviceFixture { pKernelInfo->kernelArgInfo[1].offsetHeap = 0x40; pKernelInfo->kernelArgInfo[1].isSampler = true; - pKernel = new MockKernel(&program, *pKernelInfo, *pDevice); + program = std::make_unique(); + pKernel = new MockKernel(program.get(), *pKernelInfo, *pDevice); ASSERT_NE(nullptr, pKernel); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); @@ -111,16 +112,14 @@ class SamplerSetArgFixture : public DeviceFixture { static const uint32_t crossThreadDataSize = 0x40; - // clang-format off - cl_int retVal = CL_SUCCESS; - MockProgram program; - MockKernel *pKernel = nullptr; + cl_int retVal = CL_SUCCESS; + std::unique_ptr program; + MockKernel *pKernel = nullptr; SKernelBinaryHeaderCommon kernelHeader; - KernelInfo *pKernelInfo = nullptr; - char samplerStateHeap[0x80]; - MockContext *context; - Sampler *sampler = nullptr; - // clang-format on + KernelInfo *pKernelInfo = nullptr; + char samplerStateHeap[0x80]; + MockContext *context; + Sampler *sampler = nullptr; }; typedef Test SamplerSetArgTest;