Skip to content

Commit f087907

Browse files
L0: use mock zebin modules in ULTs
- Remove remaining dependencies on IGC (do not use precompiled binaries in L0 ULTs). Related-To: NEO-7131 Signed-off-by: Kacper Nowak <[email protected]>
1 parent 7319d05 commit f087907

File tree

3 files changed

+53
-55
lines changed

3 files changed

+53
-55
lines changed

level_zero/core/test/unit_tests/fixtures/module_fixture.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@ struct ModuleImmutableDataFixture : public DeviceFixture {
190190
DeviceFixture::tearDown();
191191
}
192192

193-
const std::string binaryFilename = "test_kernel";
194193
const std::string kernelName = "test";
195194
const uint32_t numKernelArguments = 6;
196195
std::unique_ptr<MockModule> module;

level_zero/core/test/unit_tests/sources/memory/test_memory.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2211,7 +2211,6 @@ struct MultipleDevicePeerAllocationTest : public ::testing::Test {
22112211
std::unique_ptr<UltDeviceFactory> deviceFactory;
22122212
std::unique_ptr<ContextShareableMock> context;
22132213

2214-
const std::string binaryFilename = "test_kernel";
22152214
const std::string kernelName = "test";
22162215
const uint32_t numKernelArguments = 6;
22172216
std::unique_ptr<L0::Module> module;

level_zero/core/test/unit_tests/sources/module/test_module.cpp

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -553,19 +553,17 @@ struct ModuleSpecConstantsFixture : public DeviceFixture {
553553
}
554554

555555
void runTest() {
556-
std::string testFile;
557-
retrieveBinaryKernelFilenameApiSpecific(testFile, binaryFilename + "_", ".spv");
556+
auto additionalSections = {ZebinTestData::appendElfAdditionalSection::SPIRV};
557+
zebinData = std::make_unique<ZebinTestData::ZebinWithL0TestCommonModule>(device->getHwInfo(), additionalSections);
558+
const auto &src = zebinData->storage;
558559

559-
size_t size = 0;
560-
auto src = loadDataFromFile(testFile.c_str(), size);
561-
562-
ASSERT_NE(0u, size);
563-
ASSERT_NE(nullptr, src);
560+
ASSERT_NE(nullptr, src.data());
561+
ASSERT_NE(0u, src.size());
564562

565563
ze_module_desc_t moduleDesc = {};
566564
moduleDesc.format = ZE_MODULE_FORMAT_IL_SPIRV;
567-
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
568-
moduleDesc.inputSize = size;
565+
moduleDesc.pInputModule = src.data();
566+
moduleDesc.inputSize = src.size();
569567

570568
specConstants.numConstants = mockCompiler->moduleNumSpecConstants;
571569
for (uint32_t i = mockCompiler->moduleNumSpecConstants / 2; i > 0; i--) {
@@ -592,13 +590,14 @@ struct ModuleSpecConstantsFixture : public DeviceFixture {
592590
}
593591

594592
void runTestStatic() {
595-
std::string testFile;
596-
retrieveBinaryKernelFilenameApiSpecific(testFile, binaryFilename + "_", ".spv");
597-
598-
size_t sizeModule1, sizeModule2 = 0;
599-
auto srcModule1 = loadDataFromFile(testFile.c_str(), sizeModule1);
600-
auto srcModule2 = loadDataFromFile(testFile.c_str(), sizeModule2);
601-
593+
auto additionalSections = {ZebinTestData::appendElfAdditionalSection::SPIRV};
594+
zebinData = std::make_unique<ZebinTestData::ZebinWithL0TestCommonModule>(device->getHwInfo(), additionalSections);
595+
const auto &src = zebinData->storage;
596+
597+
auto srcModule1 = src.data();
598+
auto srcModule2 = src.data();
599+
auto sizeModule1 = src.size();
600+
auto sizeModule2 = src.size();
602601
ASSERT_NE(0u, sizeModule1);
603602
ASSERT_NE(0u, sizeModule2);
604603
ASSERT_NE(nullptr, srcModule1);
@@ -626,9 +625,9 @@ struct ModuleSpecConstantsFixture : public DeviceFixture {
626625
specConstantsArray.push_back(&specConstants);
627626

628627
inputSizes.push_back(sizeModule1);
629-
inputSpirVs.push_back(reinterpret_cast<const uint8_t *>(srcModule1.get()));
628+
inputSpirVs.push_back(srcModule1);
630629
inputSizes.push_back(sizeModule2);
631-
inputSpirVs.push_back(reinterpret_cast<const uint8_t *>(srcModule2.get()));
630+
inputSpirVs.push_back(srcModule2);
632631

633632
staticLinkModuleDesc.count = 2;
634633
staticLinkModuleDesc.inputSizes = inputSizes.data();
@@ -652,7 +651,7 @@ struct ModuleSpecConstantsFixture : public DeviceFixture {
652651
std::vector<const void *> specConstantsPointerValues;
653652
std::vector<uint32_t> specConstantsPointerIds;
654653

655-
const std::string binaryFilename = "test_kernel";
654+
std::unique_ptr<ZebinTestData::ZebinWithL0TestCommonModule> zebinData;
656655
const std::string kernelName = "test";
657656
MockCompilerInterfaceWithSpecConstants<T1, T2> *mockCompiler;
658657
MockModuleTranslationUnit *mockTranslationUnit;
@@ -682,19 +681,17 @@ TEST_F(ModuleSpecConstantsLongTests, givenSpecializationConstantsSetWhenCompiler
682681
mockCompiler = new FailingMockCompilerInterfaceWithSpecConstants(moduleNumSpecConstants);
683682
auto rootDeviceEnvironment = neoDevice->getExecutionEnvironment()->rootDeviceEnvironments[0].get();
684683
rootDeviceEnvironment->compilerInterface.reset(mockCompiler);
685-
std::string testFile;
686-
retrieveBinaryKernelFilenameApiSpecific(testFile, binaryFilename + "_", ".spv");
687-
688-
size_t size = 0;
689-
auto src = loadDataFromFile(testFile.c_str(), size);
684+
auto additionalSections = {ZebinTestData::appendElfAdditionalSection::SPIRV};
685+
auto zebinData = std::make_unique<ZebinTestData::ZebinWithL0TestCommonModule>(device->getHwInfo(), additionalSections);
686+
const auto &src = zebinData->storage;
690687

691-
ASSERT_NE(0u, size);
692-
ASSERT_NE(nullptr, src);
688+
ASSERT_NE(nullptr, src.data());
689+
ASSERT_NE(0u, src.size());
693690

694691
ze_module_desc_t moduleDesc = {};
695692
moduleDesc.format = ZE_MODULE_FORMAT_IL_SPIRV;
696-
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
697-
moduleDesc.inputSize = size;
693+
moduleDesc.pInputModule = src.data();
694+
moduleDesc.inputSize = src.size();
698695

699696
specConstants.numConstants = mockCompiler->moduleNumSpecConstants;
700697
for (uint32_t i = 0; i < mockCompiler->moduleNumSpecConstants / 2; i++) {
@@ -715,19 +712,17 @@ TEST_F(ModuleSpecConstantsLongTests, givenSpecializationConstantsSetWhenCompiler
715712
}
716713

717714
TEST_F(ModuleSpecConstantsLongTests, givenSpecializationConstantsSetWhenUserPassTooMuchConstsIdsThenModuleInitFails) {
718-
std::string testFile;
719-
retrieveBinaryKernelFilenameApiSpecific(testFile, binaryFilename + "_", ".spv");
720-
721-
size_t size = 0;
722-
auto src = loadDataFromFile(testFile.c_str(), size);
715+
auto additionalSections = {ZebinTestData::appendElfAdditionalSection::SPIRV};
716+
auto zebinData = std::make_unique<ZebinTestData::ZebinWithL0TestCommonModule>(device->getHwInfo(), additionalSections);
717+
const auto &src = zebinData->storage;
723718

724-
ASSERT_NE(0u, size);
725-
ASSERT_NE(nullptr, src);
719+
ASSERT_NE(nullptr, src.data());
720+
ASSERT_NE(0u, src.size());
726721

727722
ze_module_desc_t moduleDesc = {};
728723
moduleDesc.format = ZE_MODULE_FORMAT_IL_SPIRV;
729-
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
730-
moduleDesc.inputSize = size;
724+
moduleDesc.pInputModule = src.data();
725+
moduleDesc.inputSize = src.size();
731726

732727
specConstants.numConstants = mockCompiler->moduleNumSpecConstants;
733728
for (uint32_t i = mockCompiler->moduleNumSpecConstants / 2; i > 0; i--) {
@@ -773,12 +768,14 @@ TEST_F(ModuleSpecConstantsLongTests, givenSpecializationConstantsSetWhenCompiler
773768
mockCompiler = new FailingMockCompilerInterfaceWithSpecConstants(moduleNumSpecConstants);
774769
auto rootDeviceEnvironment = neoDevice->getExecutionEnvironment()->rootDeviceEnvironments[0].get();
775770
rootDeviceEnvironment->compilerInterface.reset(mockCompiler);
776-
std::string testFile;
777-
retrieveBinaryKernelFilenameApiSpecific(testFile, binaryFilename + "_", ".spv");
771+
auto additionalSections = {ZebinTestData::appendElfAdditionalSection::SPIRV};
772+
auto zebinData = std::make_unique<ZebinTestData::ZebinWithL0TestCommonModule>(device->getHwInfo(), additionalSections);
773+
const auto &src = zebinData->storage;
778774

779-
size_t sizeModule1, sizeModule2 = 0;
780-
auto srcModule1 = loadDataFromFile(testFile.c_str(), sizeModule1);
781-
auto srcModule2 = loadDataFromFile(testFile.c_str(), sizeModule2);
775+
auto sizeModule1 = src.size();
776+
auto sizeModule2 = src.size();
777+
auto srcModule1 = src.data();
778+
auto srcModule2 = src.data();
782779

783780
ASSERT_NE(0u, sizeModule1);
784781
ASSERT_NE(0u, sizeModule2);
@@ -807,9 +804,9 @@ TEST_F(ModuleSpecConstantsLongTests, givenSpecializationConstantsSetWhenCompiler
807804
specConstantsArray.push_back(&specConstants);
808805

809806
inputSizes.push_back(sizeModule1);
810-
inputSpirVs.push_back(reinterpret_cast<const uint8_t *>(srcModule1.get()));
807+
inputSpirVs.push_back(srcModule1);
811808
inputSizes.push_back(sizeModule2);
812-
inputSpirVs.push_back(reinterpret_cast<const uint8_t *>(srcModule2.get()));
809+
inputSpirVs.push_back(srcModule2);
813810

814811
staticLinkModuleDesc.count = 2;
815812
staticLinkModuleDesc.inputSizes = inputSizes.data();
@@ -834,12 +831,15 @@ struct ModuleStaticLinkFixture : public DeviceFixture {
834831
}
835832

836833
void loadModules(bool multiple) {
837-
std::string testFile;
838-
retrieveBinaryKernelFilenameApiSpecific(testFile, binaryFilename + "_", ".spv");
834+
auto additionalSections = {ZebinTestData::appendElfAdditionalSection::SPIRV};
835+
zebinData = std::make_unique<ZebinTestData::ZebinWithL0TestCommonModule>(device->getHwInfo(), additionalSections);
836+
const auto &storage = zebinData->storage;
839837

840-
srcModule1 = loadDataFromFile(testFile.c_str(), sizeModule1);
838+
srcModule1 = storage.data();
839+
sizeModule1 = storage.size();
841840
if (multiple) {
842-
srcModule2 = loadDataFromFile(testFile.c_str(), sizeModule2);
841+
srcModule2 = storage.data();
842+
sizeModule2 = storage.size();
843843
}
844844

845845
ASSERT_NE(0u, sizeModule1);
@@ -855,11 +855,11 @@ struct ModuleStaticLinkFixture : public DeviceFixture {
855855
combinedModuleDesc.pNext = &staticLinkModuleDesc;
856856

857857
inputSizes.push_back(sizeModule1);
858-
inputSpirVs.push_back(reinterpret_cast<const uint8_t *>(srcModule1.get()));
858+
inputSpirVs.push_back(srcModule1);
859859
staticLinkModuleDesc.count = 1;
860860
if (multiple) {
861861
inputSizes.push_back(sizeModule2);
862-
inputSpirVs.push_back(reinterpret_cast<const uint8_t *>(srcModule2.get()));
862+
inputSpirVs.push_back(srcModule2);
863863
staticLinkModuleDesc.count = 2;
864864
}
865865
staticLinkModuleDesc.inputSizes = inputSizes.data();
@@ -970,11 +970,11 @@ struct ModuleStaticLinkFixture : public DeviceFixture {
970970
EXPECT_TRUE(success);
971971
module->destroy();
972972
}
973-
const std::string binaryFilename = "test_kernel";
973+
std::unique_ptr<ZebinTestData::ZebinWithL0TestCommonModule> zebinData;
974974
const std::string kernelName = "test";
975975
MockModuleTranslationUnit *mockTranslationUnit;
976-
std::unique_ptr<char[]> srcModule1;
977-
std::unique_ptr<char[]> srcModule2;
976+
const uint8_t *srcModule1;
977+
const uint8_t *srcModule2;
978978
size_t sizeModule1, sizeModule2 = 0;
979979
std::vector<const uint8_t *> inputSpirVs;
980980
std::vector<size_t> inputSizes;

0 commit comments

Comments
 (0)