Skip to content

Use SciMLTesting v1.2 (folder-based run_tests)#101

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:sciml-testing-rollout
Jun 14, 2026
Merged

Use SciMLTesting v1.2 (folder-based run_tests)#101
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:sciml-testing-rollout

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Converts the test suite to the SciMLTesting v1.2 run_tests harness.

ParallelParticleSwarms's Core group runs gpu.jl/constraints.jl/lbfgs.jl inside a backend loop (@testset for BACKEND in unique(("CPU", CI_GROUP))) that mutates a shared GROUP global read by the utils.jl helper, with those files run as plain (non-@safetestset) @testsets sharing one scope. That coupling cannot be expressed by v1.2 folder-discovery (which runs each file once as an isolated @safetestset and would treat utils.jl as a test file), so the Core group uses the explicit-args core thunk, which preserves the original control flow verbatim. This is the same explicit-args path used by RecursiveArrayTools/OrdinaryDiffEq for shapes folder-discovery cannot express.

  • runtests.jl becomes a single run_tests(; env = "PPS_TEST_GROUP", default = "Core", core = ..., qa = ...) call.
  • QA is moved into test/qa/ and canonicalized to @safetestset: test/qa.jl is split into test/qa/qa.jl (a thin @safetestset wrapper) and test/qa/jet_tests.jl (the JET checks).
  • Deps: SciMLTesting (compat "1") added to test/Project.toml and test/qa/Project.toml; SafeTestsets (compat "0.0.1, 0.1") added to test/qa/Project.toml; Pkg dropped from test/Project.toml (the harness owns all Pkg ops). test/test_groups.toml is unchanged.

Behavior-preserving: the exact set of tests run under PPS_TEST_GROUP=Core and PPS_TEST_GROUP=QA is unchanged.

Ignore until reviewed by @ChrisRackauckas.

ParallelParticleSwarms's Core group runs gpu/constraints/lbfgs inside a
backend loop (`@testset for BACKEND in unique(("CPU", CI_GROUP))`) that
mutates a shared `GROUP` global read by the `utils.jl` helper, with those
files run as plain (non-safetestset) `@testset`s sharing one scope. That
coupling cannot be expressed by v1.2 folder-discovery (which runs each
file once as an isolated @safetestset), so the Core group uses the
explicit-args `core` thunk, preserving the original control flow verbatim.

QA is moved into the test/qa/ folder and canonicalized to @safetestset:
test/qa.jl is split into test/qa/qa.jl (a thin @safetestset wrapper) and
test/qa/jet_tests.jl (the JET checks). runtests.jl becomes a single
run_tests(; env="PPS_TEST_GROUP", core=..., qa=...) call.

Deps: add SciMLTesting (compat "1") to test/Project.toml and
test/qa/Project.toml; add SafeTestsets (compat "0.0.1, 0.1") to
test/qa/Project.toml; drop Pkg from test/Project.toml (the harness owns
all Pkg ops now). test/test_groups.toml is unchanged.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude changed the title Use SciMLTesting v1.0.0 (run_tests harness) Use SciMLTesting v1.2 (folder-based run_tests) Jun 14, 2026
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 14, 2026 23:54
@ChrisRackauckas ChrisRackauckas merged commit c20a011 into SciML:main Jun 14, 2026
7 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants