1 /*
2  * Copyright (C) 2018-2021 Intel Corporation
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  */
7 
8 #pragma once
9 
10 #include "shared/source/built_ins/built_ins.h"
11 #include "shared/source/built_ins/sip.h"
12 #include "shared/test/common/mocks/mock_sip.h"
13 
14 #include <memory>
15 
16 namespace NEO {
17 class MockBuiltins : public BuiltIns {
18   public:
getSipKernel(SipKernelType type,Device & device)19     const SipKernel &getSipKernel(SipKernelType type, Device &device) override {
20         if (sipKernelsOverride.find(type) != sipKernelsOverride.end()) {
21             return *sipKernelsOverride[type];
22         }
23         getSipKernelCalled = true;
24         getSipKernelType = type;
25         MockSipData::mockSipKernel->type = type;
26         return *MockSipData::mockSipKernel;
27     }
28 
overrideSipKernel(std::unique_ptr<MockSipKernel> kernel)29     void overrideSipKernel(std::unique_ptr<MockSipKernel> kernel) {
30         sipKernelsOverride[kernel->getType()] = std::move(kernel);
31     }
32     std::map<SipKernelType, std::unique_ptr<MockSipKernel>> sipKernelsOverride;
33     bool getSipKernelCalled = false;
34     SipKernelType getSipKernelType = SipKernelType::COUNT;
35 };
36 } // namespace NEO