Skip to content

Commit 65a3b35

Browse files
Run CI with JULIA_NUM_THREADS=2 so threaded VoA{SArray} test covers #570
The regression test added in #564 for `@.. thread=true` on `VectorOfArray{SArray}` only triggers the bug 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 was delegating to SciML/.github's reusable tests workflow with no thread configuration, meaning `Threads.nthreads() == 1` in CI and the regression test was silently passing without actually exercising the regression. Inline the previously-reusable test job and set `JULIA_NUM_THREADS: "2"` on the `julia-actions/julia-runtest` step, mirroring SciML/OrdinaryDiffEq.jl's SublibraryCI.yml. No changes to the test file are needed. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 110f2aa commit 65a3b35

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

.github/workflows/Tests.yml

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ concurrency:
1818

1919
jobs:
2020
tests:
21-
name: "Tests"
21+
name: "Tests - ${{ matrix.group }} - Julia ${{ matrix.version }}"
22+
permissions:
23+
actions: write
24+
contents: read
25+
runs-on: ubuntu-latest
2226
strategy:
2327
fail-fast: false
2428
matrix:
@@ -36,8 +40,31 @@ jobs:
3640
exclude:
3741
- version: "pre"
3842
group: "nopre"
39-
uses: "SciML/.github/.github/workflows/tests.yml@v1"
40-
with:
41-
group: "${{ matrix.group }}"
42-
julia-version: "${{ matrix.version }}"
43-
secrets: "inherit"
43+
steps:
44+
- uses: actions/checkout@v4
45+
- uses: julia-actions/setup-julia@v2
46+
with:
47+
version: "${{ matrix.version }}"
48+
- uses: julia-actions/cache@v1
49+
with:
50+
token: "${{ secrets.GITHUB_TOKEN }}"
51+
- uses: julia-actions/julia-buildpkg@v1
52+
- uses: julia-actions/julia-runtest@v1
53+
env:
54+
GROUP: "${{ matrix.group }}"
55+
# Run tests with 2 threads so that threaded regression tests (e.g. the
56+
# @.. thread=true VectorOfArray{SArray} test for issue #570) actually
57+
# exercise FastBroadcast's Polyester-backed multi-thread batch-split
58+
# path. With the default single thread, that path is a no-op and the
59+
# regression is not covered. Mirrors SciML/OrdinaryDiffEq.jl's
60+
# SublibraryCI.yml which passes JULIA_NUM_THREADS on the runtest step.
61+
JULIA_NUM_THREADS: "2"
62+
- uses: julia-actions/julia-processcoverage@v1
63+
with:
64+
directories: "src,ext"
65+
- uses: codecov/codecov-action@v5
66+
if: "${{ github.event.pull_request.head.repo.full_name == github.repository }}"
67+
with:
68+
files: lcov.info
69+
token: "${{ secrets.CODECOV_TOKEN }}"
70+
fail_ci_if_error: true

0 commit comments

Comments
 (0)