Refactor L0 sampler error path and add ULTs

Signed-off-by: Jim Snow <jim.m.snow@intel.com>
This commit is contained in:
Jim Snow
2021-03-22 19:24:26 -07:00
committed by Compute-Runtime-Automation
parent c97fe4c660
commit 39d450bc84
2 changed files with 38 additions and 1 deletions

View File

@@ -32,7 +32,10 @@ Sampler *Sampler::create(uint32_t productFamily, Device *device, const ze_sample
SamplerImp *sampler = nullptr;
if (allocator) {
sampler = static_cast<SamplerImp *>((*allocator)());
sampler->initialize(device, desc);
if (sampler->initialize(device, desc) != ZE_RESULT_SUCCESS) {
sampler->destroy();
sampler = nullptr;
}
}
return sampler;

View File

@@ -187,5 +187,39 @@ HWTEST2_F(ContextCreateSamplerTest, givenInvalidHardwareFamilyThenSamplerIsNotCr
EXPECT_EQ(nullptr, sampler);
}
HWTEST2_F(ContextCreateSamplerTest, givenInvalidAddressModeThenSamplerIsNotCreated, SamplerCreateSupport) {
auto addressModeArray = std::make_unique<char[]>(sizeof(ze_sampler_address_mode_t));
addressModeArray[0] = 99; // out of range value
auto addressMode = *reinterpret_cast<ze_sampler_address_mode_t *>(addressModeArray.get());
ze_sampler_filter_mode_t filterMode = ZE_SAMPLER_FILTER_MODE_LINEAR;
ze_bool_t isNormalized = false;
ze_sampler_desc_t desc = {};
desc.addressMode = addressMode;
desc.filterMode = filterMode;
desc.isNormalized = isNormalized;
L0::Sampler *sampler = Sampler::create(gfxCoreFamily, device, &desc);
EXPECT_EQ(nullptr, sampler);
}
HWTEST2_F(ContextCreateSamplerTest, givenInvalidFilterModeThenSamplerIsNotCreated, SamplerCreateSupport) {
ze_sampler_address_mode_t addressMode = ZE_SAMPLER_ADDRESS_MODE_NONE;
auto filterModeArray = std::make_unique<char[]>(sizeof(ze_sampler_filter_mode_t));
filterModeArray[0] = 99; // out of range value
ze_sampler_filter_mode_t filterMode = *reinterpret_cast<ze_sampler_filter_mode_t *>(filterModeArray.get());
ze_bool_t isNormalized = false;
ze_sampler_desc_t desc = {};
desc.addressMode = addressMode;
desc.filterMode = filterMode;
desc.isNormalized = isNormalized;
L0::Sampler *sampler = Sampler::create(gfxCoreFamily, device, &desc);
EXPECT_EQ(nullptr, sampler);
}
} // namespace ult
} // namespace L0