@@ -203,3 +203,31 @@ GEN12LPTEST_F(PreemptionWatermarkGen12LP, WhenPreambleIsCreatedThenPreambleWorkA
203203 expectedSize += PreambleHelper<FamilyType>::getKernelDebuggingCommandsSize (mockDevice.isDebuggerActive ());
204204 EXPECT_EQ (expectedSize, PreambleHelper<FamilyType>::getAdditionalCommandsSize (mockDevice));
205205}
206+
207+ using PreambleFixtureGen12lp = PreambleFixture;
208+ GEN12LPTEST_F (PreambleFixtureGen12lp, whenKernelDebuggingCommandsAreProgrammedThenCorrectRegisterAddressesAndValuesAreSet) {
209+ typedef typename FamilyType::MI_LOAD_REGISTER_IMM MI_LOAD_REGISTER_IMM;
210+
211+ auto bufferSize = PreambleHelper<FamilyType>::getKernelDebuggingCommandsSize (true );
212+ auto buffer = std::unique_ptr<char []>(new char [bufferSize]);
213+
214+ LinearStream stream (buffer.get (), bufferSize);
215+ PreambleHelper<FamilyType>::programKernelDebugging (&stream);
216+
217+ HardwareParse hwParser;
218+ hwParser.parseCommands <FamilyType>(stream);
219+ auto cmdList = hwParser.getCommandsList <MI_LOAD_REGISTER_IMM>();
220+
221+ ASSERT_EQ (2u , cmdList.size ());
222+
223+ auto it = cmdList.begin ();
224+
225+ MI_LOAD_REGISTER_IMM *pCmd = reinterpret_cast <MI_LOAD_REGISTER_IMM *>(*it);
226+ EXPECT_EQ (0x20d8u , pCmd->getRegisterOffset ());
227+ EXPECT_EQ ((1u << 5 ) | (1u << 21 ), pCmd->getDataDword ());
228+ it++;
229+
230+ pCmd = reinterpret_cast <MI_LOAD_REGISTER_IMM *>(*it);
231+ EXPECT_EQ (0xe400u , pCmd->getRegisterOffset ());
232+ EXPECT_EQ ((1u << 7 ) | (1u << 4 ), pCmd->getDataDword ());
233+ }
0 commit comments