Fix for setting correct program compiler version

Change-Id: I41db8c1640d51fabedbc2d39ff76be04c124c332
This commit is contained in:
Kamil Diedrich
2018-08-21 09:24:27 +02:00
committed by sys_ocldev
parent 7b68579e34
commit 459a157e17
3 changed files with 29 additions and 3 deletions

View File

@@ -240,3 +240,30 @@ TEST_F(ProcessElfBinaryTests, BuildOptionsNotEmpty) {
EXPECT_NE(0u, binaryVersion);
deleteDataReadFromFile(pBinary);
}
TEST_F(ProcessElfBinaryTests, GivenBinaryWhenInvalidCURRENT_ICBE_VERSIONThenInvalidCURRENT_ICBE_VERSIONTIsReturned) {
uint32_t binaryVersion;
CLElfLib::ElfBinaryStorage elfBinary;
CLElfLib::CElfWriter elfWriter(CLElfLib::E_EH_TYPE::EH_TYPE_OPENCL_EXECUTABLE, CLElfLib::E_EH_MACHINE::EH_MACHINE_NONE, 0);
char *genBinary;
size_t genBinarySize = sizeof(SProgramBinaryHeader);
SProgramBinaryHeader genBinaryHeader = {0};
genBinaryHeader.Magic = iOpenCL::MAGIC_CL;
genBinaryHeader.Version = iOpenCL::CURRENT_ICBE_VERSION - 3u;
genBinary = reinterpret_cast<char *>(&genBinaryHeader);
if (genBinary) {
std::string genBinaryTemp = genBinary ? std::string(genBinary, genBinarySize) : "";
elfWriter.addSection(CLElfLib::SSectionNode(CLElfLib::E_SH_TYPE::SH_TYPE_OPENCL_DEV_BINARY, CLElfLib::E_SH_FLAG::SH_FLAG_NONE, "Intel(R) OpenCL Device Binary", std::move(genBinaryTemp), static_cast<uint32_t>(genBinarySize)));
}
elfBinary.resize(elfWriter.getTotalBinarySize());
elfWriter.resolveBinary(elfBinary);
cl_int retVal = program->processElfBinary(elfBinary.data(), elfBinary.size(), binaryVersion);
EXPECT_EQ(CL_INVALID_BINARY, retVal);
EXPECT_EQ(binaryVersion, iOpenCL::CURRENT_ICBE_VERSION - 3u);
}