Use SciMLTesting v1.2 (folder-based run_tests)#316
Merged
ChrisRackauckas merged 1 commit intoJun 14, 2026
Conversation
Convert test/runtests.jl to the SciMLTesting v1.2 folder-discovery model: the whole GROUP dispatch ladder collapses to `run_tests()`, with test files discovered from folders matching test_groups.toml (Core = top-level test/*.jl, QA = test/qa/, NoPre = test/nopre/). - Move qa.jl into test/qa/ so the Core glob (all top-level *.jl) does not run it. QA has no Project.toml, so it runs in the root test env as before. - NoPre keeps its sub-env (test/nopre/Project.toml); folder-discovery activates it and develops the package root, matching the old explicit Pkg.develop. - Preserve the NoPre prerelease gate: GROUP=NoPre runs nothing on prerelease Julia (the original `&& isempty(VERSION.prerelease)`), while "All" globs NoPre unconditionally as before. Wrapped around the bare run_tests(). - Add SciMLTesting + SafeTestsets to the root test deps and to the NoPre sub-env Project.toml; drop Pkg (only the old harness used it). The exact set of files run under each GROUP value (All/Core/QA/NoPre) is unchanged. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47f3f4f to
5055197
Compare
ChrisRackauckas
added a commit
that referenced
this pull request
Jun 17, 2026
… group) (#317) * Import ReturnCode in independentlylinearizedtests.jl The SciMLTesting v1.2 folder-based harness (#316) runs each test file in its own isolated module. `independentlylinearizedtests.jl` references `ReturnCode.Default` but never imported `ReturnCode`; previously it leaked in from `periodic_tests.jl` because all files shared one module. Import it explicitly from SciMLBase, matching the existing pattern in periodic_tests.jl. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Make integrating_GK_sum_tests.jl self-contained (fixes Core test group) Under the SciMLTesting v1.2 per-file isolated-module harness, the linear- system helpers (simple_linear_system, adjoint_linear[_inplace], analytical_derivative, callback_saving_linear[_inplace], compute_dGdp) are no longer leaked in from integrating_GK_tests.jl, so the file errored with `UndefVarError: `simple_linear_system` not defined`. Define the helpers it uses inline, matching the self-contained pattern of the other Core files. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Read integrator error estimate without the removed EEst field OrdinaryDiffEqCore's ODEIntegrator no longer exposes an `EEst` field; the scalar error estimate now lives on the controller cache (`integrator.controller_cache.EEst`, surfaced there as `get_EEst`). Reading `integrator.EEst` directly threw `FieldError: type ODEIntegrator has no field EEst`, breaking `AdaptiveProbIntsUncertainty` (src/probints.jl, exercised by the Core group's probints.jl) and the AD group's saving_tracker_tests.jl. Add a dependency-free `_integrator_EEst` accessor that uses the `EEst` field when present (older integrators / SDE integrators) and otherwise reads it off the controller cache, keeping DiffEqCallbacks free of an OrdinaryDiffEqCore dependency while supporting both layouts. Apply the same fallback in the AD test. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Converts
test/runtests.jlto the SciMLTesting v1.2 folder-discovery model. The wholeGROUPdispatch ladder collapses torun_tests(); test files are discovered from folders matchingtest/test_groups.toml:test/*.jl(the 16 core files)test/qa/qa.jl(no per-groupProject.toml-> runs in the root test env, as before)test/nopre/(its ownProject.tomlsub-env, auto-activated and the package root developed by the harness, matching the old explicitPkg.develop)Behavior-preserving details:
qa.jlis moved intotest/qa/so the Core glob (all top-level*.jl) does not pick it up.GROUP=NoPreruns nothing on a prerelease Julia (the original&& isempty(VERSION.prerelease)), whileAllglobs the NoPre folder unconditionally (as the originalGROUP == "All"block always ran NoPre). This is expressed by wrapping the barerun_tests()in the same prereleaseif.SciMLTesting+SafeTestsetsadded to the root test deps and to the NoPre sub-envProject.toml;Pkgdropped (only the old harness used it).test/test_groups.tomlis unchanged.The exact set of files run under each
GROUPvalue (All/Core/QA/NoPre) is unchanged; verified by driving the realrun_testsv1.2.0 dispatch over every group value (no-op bodies) and matching the fired-file set against the old dispatcher.This supersedes the earlier v1.1.0 explicit-args form on this branch.
Ignore until reviewed by @ChrisRackauckas.