void PRPOffsetSinglePgSingleBlk_r10b::VerifyDataPattern(SharedReadPtr readCmd, DataPattern dataPattern, uint64_t wrVal) { LOG_NRM("Compare read vs written data to verify"); uint16_t mWrVal = (uint16_t)wrVal; if (dataPattern == DATAPAT_INC_16BIT) { const uint16_t *rdBuffPtr = (const uint16_t *)readCmd->GetROPrpBuffer(); for (uint64_t i = 0; i < (readCmd->GetPrpBufferSize() / sizeof(uint16_t)); i++) { if (*rdBuffPtr++ != mWrVal++) { readCmd->Dump( FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadPayload"), "Data read from media miscompared from written"); throw FrmwkEx(HERE, "Read data mismatch for 16bit inc prp data " "read ptr: 0x%08X, read value: 0x%02X, write value: 0x%02X", rdBuffPtr, *rdBuffPtr, mWrVal); } } // Check if meta data exists and then compare meta buffer data. const uint16_t *rdMetaPtr = (const uint16_t *)readCmd->GetMetaBuffer(); mWrVal = (uint16_t)wrVal; if (rdMetaPtr) { LOG_NRM("Compare read vs written meta data to verify"); for (uint64_t i = 0; i < (readCmd->GetMetaBufferSize() / sizeof(uint16_t)); i++) { if (*rdMetaPtr++ != mWrVal++) { readCmd->Dump( FileSystem::PrepDumpFile(mGrpName, mTestName, "MetaPayload"), "Meta Data read from media miscompared from written"); throw FrmwkEx(HERE, "Read data mismatch for 16bit inc meta data " "read ptr: 0x%08X, read val: 0x%02X, write val: 0x%02X", rdBuffPtr, *rdBuffPtr, mWrVal); } } } } else if (dataPattern == DATAPAT_CONST_8BIT) { const uint8_t *rdBuffPtr = readCmd->GetROPrpBuffer(); for (uint64_t i = 0; i < (readCmd->GetPrpBufferSize() / sizeof(uint8_t)); i++) { if (*rdBuffPtr++ != (uint8_t)wrVal) { readCmd->Dump( FileSystem::PrepDumpFile(mGrpName, mTestName, "ReadPayload"), "Data read from media miscompared from written"); throw FrmwkEx(HERE, "Read data mismatch for 8bit const data " "read ptr: 0x%08X, read value: 0x%02X, write value: 0x%02X", rdBuffPtr, *rdBuffPtr, wrVal); } } // Check if meta data exists and then compare meta buffer data. const uint8_t *rdMetaPtr = readCmd->GetMetaBuffer(); if (rdMetaPtr) { LOG_NRM("Compare read vs written meta data to verify"); for (uint64_t i = 0; i < (readCmd->GetMetaBufferSize() / sizeof(uint8_t)); i++) { if (*rdMetaPtr++ != (uint8_t)wrVal) { readCmd->Dump( FileSystem::PrepDumpFile(mGrpName, mTestName, "MetaPayload"), "Meta Data read from media miscompared from written"); throw FrmwkEx(HERE, "Read data mismatch for 8bit const meta data " "read ptr: 0x%08X, read val: 0x%02X, write val: 0x%02X", rdBuffPtr, *rdBuffPtr, wrVal); } } } } }