diff --git a/unified-runtime/test/conformance/exp_usm_context_memcpy/urUSMContextMemcpyExp.cpp b/unified-runtime/test/conformance/exp_usm_context_memcpy/urUSMContextMemcpyExp.cpp index 0c41b4fd9dff..c1a09af3e8b0 100644 --- a/unified-runtime/test/conformance/exp_usm_context_memcpy/urUSMContextMemcpyExp.cpp +++ b/unified-runtime/test/conformance/exp_usm_context_memcpy/urUSMContextMemcpyExp.cpp @@ -81,11 +81,20 @@ struct urUSMContextMemcpyExpTestDevice : urUSMContextMemcpyExpTest { UUR_INSTANTIATE_DEVICE_TEST_SUITE_MULTI_QUEUE(urUSMContextMemcpyExpTestDevice); TEST_P(urUSMContextMemcpyExpTestDevice, Success) { + // Testing without xfail to reproduce sporadic failure + // Run multiple iterations to increase chance of catching race condition // https://github.com/intel/llvm/issues/19688 - UUR_KNOWN_FAILURE_ON(uur::CUDA{}); - ASSERT_SUCCESS( - urUSMContextMemcpyExp(context, dst_ptr, src_ptr, allocation_size)); - verifyData(); + constexpr int NumIterations = 20; + for (int i = 0; i < NumIterations; ++i) { + ASSERT_SUCCESS( + urUSMContextMemcpyExp(context, dst_ptr, src_ptr, allocation_size)); + verifyData(); + + // Re-initialize for next iteration + if (i < NumIterations - 1) { + initAllocations(); + } + } } // Arbitrarily do the negative tests with device allocations. These are mostly a