Address EP conformance review feedback
- Skip (not fail) when an EP factory throws during construction, e.g. CUDA's
cudaSetDevice on a GPU-less machine, by wrapping MakeEp() in try/catch and
logging the exception text before returning nullptr.
- Stop asserting GetDeviceId() == GetDevice().Id(): GetDeviceId() is
provider-defined (WebGPU returns a configurable context id while its OrtDevice
id is fixed at 0) and is not required to match; it is now only smoke-called.
- Drop the non-empty allocator-name assertion: an empty OrtMemoryInfo.name is
permitted by the contract, so requiring one over-states it.
- Strengthen CreatePreferredAllocators() repeatability: null-check the second
call and compare per-position OrtMemoryInfo, not just the element count.
- Rename DataTransferCpuRoundTrip* to DataTransferCpuCopy* across both suites
and the shared helper (it is a single CPU-to-CPU copy, not a round-trip).
- Self-document the plugin-EP factory flag (/*expects_plugin_ep=*/true), clarify
in the header that coverage is opt-in per registered EP, and note that
skip-capable helpers must be invoked as the last statement of a test body.
- Plugin suite: move test-only includes inside the dynamic-plugin guard, drop a
redundant self-namespace alias, and simplify a factory lambda.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Author
Gopalakrishnan Nallasamy