Skip to content

Commit 60f782f

Browse files
committed
Add custom worker with init_worker_code tests
1 parent 83aa246 commit 60f782f

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

test/runtests.jl

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,52 @@ end
134134
@test contains(str, "SUCCESS")
135135
end
136136

137+
@testset "custom worker with `init_worker_code`" begin
138+
init_worker_code = quote
139+
should_be_defined() = true
140+
end
141+
init_code = quote
142+
using Test
143+
import ..should_be_defined
144+
end
145+
function test_worker(name, init_worker_code)
146+
if name == "needs env var"
147+
return addworker(env = ["SPECIAL_ENV_VAR" => "42"]; init_worker_code)
148+
elseif name == "threads/2"
149+
return addworker(exeflags = ["--threads=2"]; init_worker_code)
150+
end
151+
return nothing
152+
end
153+
testsuite = Dict(
154+
"needs env var" => quote
155+
@test ENV["SPECIAL_ENV_VAR"] == "42"
156+
@test should_be_defined()
157+
end,
158+
"doesn't need env var" => quote
159+
@test !haskey(ENV, "SPECIAL_ENV_VAR")
160+
@test should_be_defined()
161+
end,
162+
"threads/1" => quote
163+
@test Base.Threads.nthreads() == 1
164+
@test should_be_defined()
165+
end,
166+
"threads/2" => quote
167+
@test Base.Threads.nthreads() == 2
168+
@test should_be_defined()
169+
end
170+
)
171+
172+
io = IOBuffer()
173+
runtests(ParallelTestRunner, ["--verbose"]; test_worker, init_code, init_worker_code, testsuite, stdout=io, stderr=io)
174+
175+
str = String(take!(io))
176+
@test contains(str, r"needs env var .+ started at")
177+
@test contains(str, r"doesn't need env var .+ started at")
178+
@test contains(str, r"threads/1 .+ started at")
179+
@test contains(str, r"threads/2 .+ started at")
180+
@test contains(str, "SUCCESS")
181+
end
182+
137183
@testset "failing test" begin
138184
testsuite = Dict(
139185
"failing test" => quote

0 commit comments

Comments
 (0)