Skip to content

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

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:canonicalize-safetestset
Jun 14, 2026
Merged

Use SciMLTesting v1.2 (folder-based run_tests)#147
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:canonicalize-safetestset

Conversation

@ChrisRackauckas-Claude

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

Copy link
Copy Markdown
Contributor

Converts test/runtests.jl to the SciMLTesting v1.2 harness.

Shape

Multi-group single package. test/test_groups.toml declares Core, CoreLTSPre, and QA. The Core and CoreLTSPre groups run the identical functional suite — they exist only to split the version/OS CI matrix. This shared-file-set-across-two-groups shape cannot be expressed by SciMLTesting's bare folder-discovery mode (which would require duplicating the 16 files into a test/CoreLTSPre/ folder and would double-run the suite under the local All default), so this uses the v1.2 explicit-args form (still v1.2, the backward-compatible run_tests(; core, groups, qa, all) path) over a clean folder layout.

Layout

  • Core = top-level test/*.jl (the 16 functional files), each now a self-contained @safetestset body that brings its own usings.
  • CoreLTSPre shares the same body thunk as Core.
  • QA = test/qa/ with its own test/qa/Project.toml sub-env (Aqua + JET), activated by the harness.
  • all = ["Core"] keeps GROUP unset (local default "All") running the functional suite exactly once.

Behavior preservation

The exact set of tests run under each GROUP value is unchanged from master:

  • GROUP=Core, GROUP=CoreLTSPre, and the local All default → the 16-file functional suite + the piracy guard, once.
  • GROUP=QAqa.jl (Aqua + the 4 tracked @test_broken markers).

Verified locally on Julia 1.11: GROUP=CoreTesting Evolutionary tests passed; GROUP=QAQA | 8 Pass, 4 BrokenTesting Evolutionary tests passed. test/test_groups.toml is unchanged.

Deps

  • Root Project.toml: added SciMLTesting + SafeTestsets (+ compat) to [extras]/[targets].test/[compat]; dropped Pkg (the harness owns env activation; no test/*.jl uses Pkg anymore).
  • test/qa/Project.toml: added SciMLTesting + SafeTestsets; dropped Pkg.

Ignore until reviewed by @ChrisRackauckas.

Convert test/runtests.jl to the SciMLTesting v1.2 harness. The functional
suite is identical across the Core and CoreLTSPre groups (they only split the
version/OS matrix), so they share one body thunk and `all = ["Core"]` keeps the
local default running the suite exactly once. QA runs in its isolated
test/qa env via the run_tests qa group spec.

The per-file tests are now self-contained @safetestset bodies (each brings its
own `using`s), and Pkg is dropped from the test deps (the harness owns env
activation). 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 Canonicalize tests to @safetestset for per-unit module isolation 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 c0e690b into SciML:master Jun 14, 2026
14 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