Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion test/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b"
oneAPI_Support_jll = "b049733a-a71d-5ed3-8eba-7d323ac00b36"

[compat]
ParallelTestRunner = "2.2"
ParallelTestRunner = "2.8"
16 changes: 3 additions & 13 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -180,17 +180,7 @@ init_code = quote
..@grab_output, ..@on_device, ..sink
end

# On memory-pressured GPUs (e.g. 8GB cards) a failing test can leave the worker — or even
# the driver — in a state where every subsequent allocation fails, so recycle workers on
# failure and give failed files one exclusive retry on an otherwise-idle device.
# These options are not available in every ParallelTestRunner release, so detect them
# rather than gating on a version number.
runtests_kwargs = Set(Iterators.flatten(Base.kwarg_decl.(methods(ParallelTestRunner.runtests))))
failure_handling = if :recycle_on_failure in runtests_kwargs
(; recycle_on_failure = true, retries = 1)
else
(;)
end

# Retry test failures once to give a chance to memory-pressure related failures to pass
runtests(oneAPI, args; testsuite, init_code, init_worker_code, env = worker_env,
failure_handling...)
recycle_on_failure = true, retries = 1
)
Loading