2018-01-08 22:58:02 +08:00
|
|
|
/*
|
2023-03-27 20:03:02 +08:00
|
|
|
* Copyright (C) 2018-2023 Intel Corporation
|
2018-01-08 22:58:02 +08:00
|
|
|
*
|
2018-09-18 15:11:08 +08:00
|
|
|
* SPDX-License-Identifier: MIT
|
2018-01-08 22:58:02 +08:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2020-02-24 20:10:44 +08:00
|
|
|
#include "shared/source/built_ins/built_ins.h"
|
|
|
|
#include "shared/source/built_ins/sip.h"
|
2021-01-21 20:10:13 +08:00
|
|
|
#include "shared/test/common/mocks/mock_sip.h"
|
2020-02-24 20:10:44 +08:00
|
|
|
|
2022-11-16 22:01:52 +08:00
|
|
|
#include <map>
|
2018-01-08 22:58:02 +08:00
|
|
|
#include <memory>
|
|
|
|
|
2019-07-18 21:52:55 +08:00
|
|
|
namespace NEO {
|
|
|
|
class MockBuiltins : public BuiltIns {
|
2018-01-08 22:58:02 +08:00
|
|
|
public:
|
2023-03-27 20:03:02 +08:00
|
|
|
using BuiltIns::perContextSipKernels;
|
2023-08-08 23:18:53 +08:00
|
|
|
using BuiltIns::sipKernels;
|
2023-03-27 20:03:02 +08:00
|
|
|
|
2019-07-18 21:52:55 +08:00
|
|
|
const SipKernel &getSipKernel(SipKernelType type, Device &device) override {
|
2023-08-08 23:18:53 +08:00
|
|
|
getSipKernelCalled = true;
|
|
|
|
getSipKernelType = type;
|
2018-01-08 22:58:02 +08:00
|
|
|
if (sipKernelsOverride.find(type) != sipKernelsOverride.end()) {
|
|
|
|
return *sipKernelsOverride[type];
|
|
|
|
}
|
2023-08-08 23:18:53 +08:00
|
|
|
if (callBaseGetSipKernel) {
|
|
|
|
return BuiltIns::getSipKernel(type, device);
|
|
|
|
}
|
2020-12-02 18:22:27 +08:00
|
|
|
MockSipData::mockSipKernel->type = type;
|
|
|
|
return *MockSipData::mockSipKernel;
|
2018-01-08 22:58:02 +08:00
|
|
|
}
|
|
|
|
|
2021-05-04 07:53:05 +08:00
|
|
|
void overrideSipKernel(std::unique_ptr<MockSipKernel> kernel) {
|
2018-01-08 22:58:02 +08:00
|
|
|
sipKernelsOverride[kernel->getType()] = std::move(kernel);
|
|
|
|
}
|
2021-05-04 07:53:05 +08:00
|
|
|
std::map<SipKernelType, std::unique_ptr<MockSipKernel>> sipKernelsOverride;
|
2018-01-30 23:49:01 +08:00
|
|
|
bool getSipKernelCalled = false;
|
2023-08-08 23:18:53 +08:00
|
|
|
bool callBaseGetSipKernel = false;
|
2023-12-11 19:02:15 +08:00
|
|
|
SipKernelType getSipKernelType = SipKernelType::count;
|
2018-01-08 22:58:02 +08:00
|
|
|
};
|
2022-11-16 22:01:52 +08:00
|
|
|
} // namespace NEO
|