2017-12-21 00:45:38 +01:00
|
|
|
/*
|
2022-08-16 14:51:17 +00:00
|
|
|
* Copyright (C) 2018-2022 Intel Corporation
|
2017-12-21 00:45:38 +01:00
|
|
|
*
|
2018-09-18 09:11:08 +02:00
|
|
|
* SPDX-License-Identifier: MIT
|
2017-12-21 00:45:38 +01:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2020-02-23 15:20:22 +01:00
|
|
|
#include "opencl/test/unit_test/fixtures/program_fixture.h"
|
2019-02-27 11:39:32 +01:00
|
|
|
|
2020-02-22 22:50:57 +01:00
|
|
|
#include "opencl/source/program/create.inl"
|
2020-02-23 15:20:22 +01:00
|
|
|
#include "opencl/test/unit_test/mocks/mock_program.h"
|
2020-02-22 09:28:27 +01:00
|
|
|
|
2019-03-26 11:59:46 +01:00
|
|
|
namespace NEO {
|
2022-08-16 14:51:17 +00:00
|
|
|
void ProgramFixture::createProgramWithSource(Context *pContext,
|
2019-11-02 13:09:17 +01:00
|
|
|
const std::string &sourceFileName) {
|
2022-08-16 14:51:17 +00:00
|
|
|
cleanup();
|
2019-08-29 15:10:51 +02:00
|
|
|
cl_int retVal = CL_SUCCESS;
|
|
|
|
std::string testFile;
|
|
|
|
|
|
|
|
testFile.append(clFiles);
|
2019-11-02 13:09:17 +01:00
|
|
|
testFile.append(sourceFileName);
|
2019-08-29 15:10:51 +02:00
|
|
|
ASSERT_EQ(true, fileExists(testFile));
|
|
|
|
|
|
|
|
knownSource = loadDataFromFile(
|
|
|
|
testFile.c_str(),
|
|
|
|
knownSourceSize);
|
|
|
|
|
|
|
|
ASSERT_NE(0u, knownSourceSize);
|
|
|
|
ASSERT_NE(nullptr, knownSource);
|
|
|
|
|
|
|
|
const char *sources[1] = {knownSource.get()};
|
|
|
|
pProgram = Program::create<MockProgram>(
|
2020-10-23 09:38:45 +02:00
|
|
|
pContext,
|
2019-08-29 15:10:51 +02:00
|
|
|
1,
|
|
|
|
sources,
|
|
|
|
&knownSourceSize,
|
|
|
|
retVal);
|
|
|
|
|
|
|
|
ASSERT_NE(nullptr, pProgram);
|
|
|
|
ASSERT_EQ(CL_SUCCESS, retVal);
|
|
|
|
}
|
|
|
|
|
2022-08-16 14:51:17 +00:00
|
|
|
void ProgramFixture::createProgramFromBinary(Context *pContext,
|
2020-10-21 10:25:03 +02:00
|
|
|
const ClDeviceVector &deviceVector,
|
2019-08-29 15:10:51 +02:00
|
|
|
const std::string &binaryFileName,
|
|
|
|
cl_int &retVal,
|
|
|
|
const std::string &options) {
|
|
|
|
retVal = CL_SUCCESS;
|
|
|
|
|
|
|
|
std::string testFile;
|
|
|
|
retrieveBinaryKernelFilename(testFile, binaryFileName + "_", ".bin", options);
|
|
|
|
|
|
|
|
knownSource = loadDataFromFile(
|
|
|
|
testFile.c_str(),
|
|
|
|
knownSourceSize);
|
|
|
|
|
|
|
|
ASSERT_NE(0u, knownSourceSize);
|
|
|
|
ASSERT_NE(nullptr, knownSource);
|
|
|
|
|
|
|
|
pProgram = Program::create<MockProgram>(
|
2020-10-21 10:25:03 +02:00
|
|
|
pContext,
|
|
|
|
deviceVector,
|
2019-08-29 15:10:51 +02:00
|
|
|
&knownSourceSize,
|
|
|
|
(const unsigned char **)&knownSource,
|
|
|
|
nullptr,
|
|
|
|
retVal);
|
|
|
|
}
|
|
|
|
|
2022-08-16 14:51:17 +00:00
|
|
|
void ProgramFixture::createProgramFromBinary(Context *pContext,
|
2020-10-21 10:25:03 +02:00
|
|
|
const ClDeviceVector &deviceVector,
|
2019-08-29 15:10:51 +02:00
|
|
|
const std::string &binaryFileName,
|
|
|
|
const std::string &options) {
|
2022-08-16 14:51:17 +00:00
|
|
|
cleanup();
|
2019-08-29 15:10:51 +02:00
|
|
|
cl_int retVal = CL_SUCCESS;
|
2022-08-16 14:51:17 +00:00
|
|
|
createProgramFromBinary(
|
2019-08-29 15:10:51 +02:00
|
|
|
pContext,
|
2020-10-21 10:25:03 +02:00
|
|
|
deviceVector,
|
2019-08-29 15:10:51 +02:00
|
|
|
binaryFileName,
|
|
|
|
retVal,
|
|
|
|
options);
|
|
|
|
|
|
|
|
ASSERT_NE(nullptr, pProgram);
|
|
|
|
ASSERT_EQ(CL_SUCCESS, retVal);
|
|
|
|
}
|
2017-12-21 00:45:38 +01:00
|
|
|
|
2019-03-26 11:59:46 +01:00
|
|
|
} // namespace NEO
|