Skip to content

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

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

Use SciMLTesting v1.2 (folder-based run_tests)#206
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 the LabelledArrays.jl test suite to the SciMLTesting v1.2 folder-discovery model. test/runtests.jl becomes:

using SciMLTesting
run_tests()

Folder layout

  • Core = top-level test/*.jl (slarrays.jl, larrays.jl, diffeq.jl, chainrules.jl, recursivearraytools.jl) — exactly the files the old GROUP=Core/GROUP=All ran.
  • AllocCheck -> test/AllocCheck/alloc_tests.jl, marked in_all = false in test_groups.toml so it stays out of the All aggregate (the old dispatch only ran alloc_tests.jl under GROUP=AllocCheck, never under All).
  • QA -> test/qa/ with its existing Project.toml.

Behavior preservation

The set of files run under each CI group (Core, AllocCheck, QA) is unchanged. Verified end-to-end on Julia 1.11 via Pkg.test():

  • GROUP=Core: chainrules 50/50, diffeq 9/9, larrays 72 pass + 4 pre-existing broken, recursivearraytools 1/1, slarrays 48/48.
  • GROUP=AllocCheck: 28/28.
  • GROUP=QA: 4 pass + 5 pre-existing broken.

Notes

  • chainrules.jl gains its own using LabelledArrays, ChainRulesTestUtils, Test. It previously relied on runtests.jl's top-level usings; under the isolated @safetestset include path each file must be self-contained.
  • Deps: add SciMLTesting + SafeTestsets to root [extras]/[targets].test and to test/qa/Project.toml; drop Pkg from both (no Pkg usage remains in test/).
  • The legacy RecursiveArrayTools dispatch branch is dropped as a selectable group (it is not in test_groups.toml and was never requested by CI); recursivearraytools.jl still runs under Core/All.

Ignore until reviewed by @ChrisRackauckas.

Convert the test suite to the SciMLTesting v1.2 folder-discovery model:
runtests.jl becomes `using SciMLTesting; run_tests()`.

Folder layout:
- Core = top-level test/*.jl (slarrays, larrays, diffeq, chainrules,
  recursivearraytools) — same files the old GROUP=Core/All ran.
- AllocCheck -> test/AllocCheck/alloc_tests.jl (in_all = false so it stays
  out of the All aggregate, matching the old dispatch where alloc_tests ran
  only under GROUP=AllocCheck).
- QA -> test/qa/ with its existing Project.toml.

chainrules.jl gains its own `using LabelledArrays, ChainRulesTestUtils, Test`
(it previously relied on runtests.jl's top-level usings; under the isolated
@safetestset include path each file must be self-contained).

Deps: add SciMLTesting + SafeTestsets to root [extras]/[targets].test and to
test/qa/Project.toml; drop Pkg from both (no Pkg usage remains in test/).

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 test units to @safetestset 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 9f7eaef into SciML:master Jun 14, 2026
12 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