diff --git a/test/runtests.jl b/test/runtests.jl index 911b976d..d8914d1e 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -183,7 +183,10 @@ 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. -failure_handling = if pkgversion(ParallelTestRunner) >= v"2.7.0" +# 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 (;)