Skip to content

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

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

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

Conversation

@ChrisRackauckas-Claude

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

Copy link
Copy Markdown
Contributor

Converts the test harness to the SciMLTesting v1.2 folder model.

DifferenceEquations is a single package with a Core group and a QA group. The Core group's five Enzyme/gradient test files are gated behind CI != "true" (they are skipped on CI). That CI guard cannot be expressed by SciMLTesting's folder-discovery mode (which discovers and runs every *.jl in a group folder unconditionally), so this PR uses the explicit-args form of run_tests — the same v1.2 backward-compatible path used by OrdinaryDiffEq.jl — with:

  • a core thunk that keeps the if get(ENV, "CI", "false") != "true" guard verbatim and runs each (already self-contained) test file under its own @safetestset;
  • all = ["Core"] so GROUP=All runs only the Core body (QA runs only for GROUP=QA), matching the previous runtests.jl;
  • an explicit qa thunk that activates test/qa, develops the root package, instantiates, and includes qa.jl — kept byte-for-byte identical to the previous QA path.

SciMLTesting + SafeTestsets are added to the test and test/qa environments. test/data, test/utilities, and test/test_groups.toml are unchanged.

Verified statically: every Project.toml/test_groups.toml parses, runtests.jl + qa.jl parse, and a dispatch harness confirms the exact set of test files fired under each GROUP × CI combination is identical to the previous harness (All/Core = 13 files on CI, 18 locally; QA = qa.jl).

Ignore until reviewed by @ChrisRackauckas.

Convert the test harness to SciMLTesting v1.2. The Core group's five
Enzyme/gradient files are gated behind `CI != "true"` (skipped on CI); that
guard cannot be expressed by folder-discovery (which runs every file in a group
unconditionally), so Core is wired as an explicit `run_tests` `core` thunk that
keeps the CI guard verbatim and runs each self-contained file under its own
@safetestset. "All" is curated to ["Core"] so GROUP=All runs only Core (QA runs
only for GROUP=QA), matching the previous runtests.jl. The QA env activation
(activate/develop/instantiate + bare include of qa.jl) is kept as an explicit
thunk so it stays byte-for-byte identical.

Adds SciMLTesting + SafeTestsets to the test and qa test envs. test/data,
test/utilities, and test/test_groups.toml are 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 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 70053c7 into SciML:main Jun 14, 2026
10 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