Commit adffd1e
Ensure threaded VoA{SArray} regression test actually uses >=2 threads (#570)
The testset added in #564 for `@.. thread=true` on
`VectorOfArray{SArray}` only exercises the regression path when
`Threads.nthreads() >= 2`. FastBroadcast's Polyester-backed threaded
materialize splits work along the last axis via `view(dst, :, r)`; with
a single thread that split is a no-op, so the `setindex!` loop that
originally blew up on the immutable `SVector` element in issue #570 is
never reached. CI currently runs with the default one thread, so the
test has been silently passing without actually covering the regression.
Guard the testset: when running with >=2 threads, assert in-process as
before; otherwise spawn a child `julia --threads=2` process that repeats
the broadcast and fails loudly if the result diverges. This guarantees
the regression is caught regardless of how the outer test process was
launched.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 110f2aa commit adffd1e
1 file changed
+30
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
291 | 291 | | |
292 | 292 | | |
293 | 293 | | |
294 | | - | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
295 | 301 | | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
304 | 325 | | |
305 | 326 | | |
306 | 327 | | |
| |||
0 commit comments