1 /*
2  * Copyright (C) 2018-2021 Intel Corporation
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  */
7 
8 #pragma once
9 
10 #include "shared/test/common/test_macros/test.h"
11 
12 #include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
13 
14 #include <cstdint>
15 
16 namespace NEO {
17 class MockContext;
18 class MockKernel;
19 class MultiDeviceKernel;
20 class MockProgram;
21 class Image;
22 class MockKernelInfo;
23 struct KernelInfo;
24 } // namespace NEO
25 
26 namespace iOpenCL {
27 struct SKernelBinaryHeaderCommon;
28 }
29 
30 class KernelImageArgTest : public Test<NEO::ClDeviceFixture> {
31   public:
KernelImageArgTest()32     KernelImageArgTest() {
33     }
34 
35     ~KernelImageArgTest() override;
36 
37   protected:
38     void SetUp() override;
39 
40     void TearDown() override;
41 
42     cl_int retVal = 0;
43     std::unique_ptr<iOpenCL::SKernelBinaryHeaderCommon> kernelHeader;
44     std::unique_ptr<NEO::MockContext> context;
45     std::unique_ptr<NEO::MockProgram> program;
46     std::unique_ptr<NEO::MockKernelInfo> pKernelInfo;
47     std::unique_ptr<NEO::MultiDeviceKernel> pMultiDeviceKernel;
48     NEO::MockKernel *pKernel;
49     std::unique_ptr<NEO::Image> image;
50 
51     char surfaceStateHeap[0x80];
52     uint32_t offsetNumMipLevelsImage0 = 0x40;
53 };
54