diff --git a/test/script.jl b/test/script.jl index 060760a..cea36a6 100644 --- a/test/script.jl +++ b/test/script.jl @@ -1,13 +1,28 @@ #!/usr/bin/env julia -using Distributed, SlurmClusterManager +# We don't use `using Foo` here. +# We either use `using Foo: hello, world`, or we use `import Foo`. +# https://github.com/JuliaLang/julia/pull/42080 +using Distributed: addprocs, workers, nworkers, remotecall_fetch +using SlurmClusterManager: SlurmManager + addprocs(SlurmManager()) -@assert nworkers() == parse(Int, ENV["SLURM_NTASKS"]) +# We intentionally do not use `@assert` here. +# In a future minor release of Julia, `@assert`s may be disabled by default. +const SLURM_NTASKS = parse(Int, ENV["SLURM_NTASKS"]) +if nworkers() != SLURM_NTASKS + msg = "Test failed: nworkers=$(nworkers()) does not match SLURM_NTASKS=$(SLURM_NTASKS)" + error(msg) +end -hosts = map(workers()) do id +const hosts = map(workers()) do id remotecall_fetch(() -> gethostname(), id) end sort!(hosts) -@assert hosts == ["c1", "c1", "c2", "c2"] +# We don't use `@assert` here, for reason described above. +if hosts != ["c1", "c1", "c2", "c2"] + msg = "Test failed: observed_hosts=$(hosts) does not match expected_hosts=[c1, c1, c2, c2]" + error(msg) +end