test: introduce method for testing variant of walkers

This commit adds a pattern that removes the strong dependency
on the compile-time DefaultWalkerType typename in generic unit tests.

Related-To: NEO-10641
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk
2024-07-03 14:44:03 +00:00
committed by Compute-Runtime-Automation
parent 2d1f4e6214
commit ac00ca60f7
10 changed files with 45 additions and 8 deletions

View File

@@ -102,6 +102,8 @@ struct UnitTestHelper {
static void verifyDummyBlitWa(const RootDeviceEnvironment *rootDeviceEnvironment, GenCmdList::iterator &cmdIterator);
static GenCmdList::iterator findWalkerCmd(GenCmdList::iterator begin, GenCmdList::iterator end, bool heapless);
static GenCmdList::iterator findWalkerTypeCmd(GenCmdList::iterator begin, GenCmdList::iterator end);
static typename GfxFamily::WalkerVariant getWalkerVariant(void *walkerItor);
};
} // namespace NEO

View File

@@ -114,4 +114,14 @@ uint32_t UnitTestHelper<GfxFamily>::getMiLoadRegisterImmProgrammedCmdsCount(bool
return (debuggingEnabled ? 2u : 0u);
}
template <typename GfxFamily>
typename GfxFamily::WalkerVariant UnitTestHelper<GfxFamily>::getWalkerVariant(void *walkerItor) {
if (auto walker = genCmdCast<typename GfxFamily::DefaultWalkerType *>(walkerItor); walker) {
return walker;
}
UNRECOVERABLE_IF(true);
return {};
}
} // namespace NEO