diff --git a/src/ParallelTestRunner.jl b/src/ParallelTestRunner.jl index ae91180..5fc6092 100644 --- a/src/ParallelTestRunner.jl +++ b/src/ParallelTestRunner.jl @@ -360,7 +360,9 @@ Determine default number of parallel jobs. function default_njobs(; cpu_threads = Sys.CPU_THREADS, free_memory = available_memory()) jobs = cpu_threads memory_jobs = Int64(free_memory) รท (2 * 2^30) - return max(1, min(jobs, memory_jobs)) + env_var_num_jobs = tryparse(Int, get(ENV, "PARALLELTESTRUNNER_NUM_JOBS", "")) + # `PARALLELTESTRUNNER_NUM_JOBS` would take precedence over the default calculation. + return something(env_var_num_jobs, max(1, min(jobs, memory_jobs))) end # Historical test duration database diff --git a/test/runtests.jl b/test/runtests.jl index 6c83431..6bed69a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -223,4 +223,11 @@ end @test contains(str, "SUCCESS") end +@testset "Number of jobs" begin + num_jobs = 1234 + withenv("PARALLELTESTRUNNER_NUM_JOBS" => num_jobs) do + @test ParallelTestRunner.default_njobs() == num_jobs + end +end + end