@@ -218,7 +218,7 @@ cd(@__DIR__) do
218
218
end
219
219
delete! (running_tests, test)
220
220
push! (results, (test, resp))
221
- if resp[ 1 ] isa Exception && ! (resp[ 1 ] isa TestSetException && isempty (resp[ 1 ] . errors_and_fails))
221
+ if length (resp) == 1
222
222
print_testworker_errored (test, wrkr, exit_on_error ? nothing : resp[1 ])
223
223
if exit_on_error
224
224
skipped = length (tests)
@@ -268,12 +268,16 @@ cd(@__DIR__) do
268
268
# to the overall aggregator
269
269
isolate = true
270
270
t == " SharedArrays" && (isolate = false )
271
- local resp
272
- try
273
- resp = eval (Expr (:call , () -> runtests (t, test_path (t), isolate, seed= seed))) # runtests is defined by the include above
271
+ resp = try
272
+ Base. invokelatest (runtests, t, test_path (t), isolate, seed= seed) # runtests is defined by the include above
273
+ catch e
274
+ isa (e, InterruptException) && rethrow ()
275
+ Any[CapturedException (e, catch_backtrace ())]
276
+ end
277
+ if length (resp) == 1
278
+ print_testworker_errored (t, 1 , resp[1 ])
279
+ else
274
280
print_testworker_stats (t, 1 , resp)
275
- catch e
276
- resp = Any[e]
277
281
end
278
282
push! (results, (t, resp))
279
283
end
@@ -352,7 +356,7 @@ cd(@__DIR__) do
352
356
# the test runner itself had some problem, so we may have hit a segfault,
353
357
# deserialization errors or something similar. Record this testset as Errored.
354
358
fake = Test. DefaultTestSet (testname)
355
- Test. record (fake, Test. Error (:test_error , testname, nothing , Any[(resp, [])], LineNumberNode (1 )))
359
+ Test. record (fake, Test. Error (:nontest_error , testname, nothing , Any[(resp, [])], LineNumberNode (1 )))
356
360
Test. push_testset (fake)
357
361
Test. record (o_ts, fake)
358
362
Test. pop_testset ()
0 commit comments