Skip to content

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

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)#36
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:sciml-testing-rollout

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Converts the test suite to the SciMLTesting v1.2 folder-discovery model.

test/runtests.jl is now just:

using SciMLTesting
run_tests()

Group → folder mapping (behavior-preserving — the exact set of files run under each GROUP is unchanged):

  • Core = top-level test/*.jl (core_tests.jl, alloc_tests.jl), each in its own isolated @safetestset, in the main test env.
  • QA = test/qa/ (existing per-group Project.toml sub-env). qa.jl is moved from the top level into test/qa/ so folder-discovery's Core glob (all top-level *.jl) does not erroneously run it as a Core file.

Dependency edits:

  • Add SciMLTesting to the root [extras] / [targets].test / [compat].
  • Add SafeTestsets + SciMLTesting to test/qa/Project.toml (the harness wraps the QA file in a @safetestset, so SafeTestsets must be resolvable in that sub-env).
  • Drop Pkg from the test deps + compat (the v1.2 harness owns all Pkg operations; no test/*.jl uses Pkg).
  • test/test_groups.toml is unchanged.

Ignore until reviewed by @ChrisRackauckas.

Replace the hand-written GROUP dispatch in test/runtests.jl with the
SciMLTesting v1.2 folder-discovery harness (`using SciMLTesting; run_tests()`).

- Core = top-level test/*.jl (core_tests.jl, alloc_tests.jl) in the main test
  env — same files the old dispatcher ran for Core/All.
- QA = test/qa/. Move qa.jl from the top level into test/qa/ so that
  folder-discovery's Core glob (all top-level *.jl) does not erroneously run it.
- Add SciMLTesting to root [extras]/[targets].test/[compat] and add SafeTestsets
  + SciMLTesting to the QA sub-env Project.toml (the harness wraps the QA file in
  a @safetestset, so SafeTestsets must be resolvable in that env). Drop Pkg from
  the test deps (the v1.2 harness owns all Pkg operations; no test/*.jl uses Pkg).
- test/test_groups.toml unchanged.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 14, 2026 23:54
@ChrisRackauckas
ChrisRackauckas merged commit 54bd400 into SciML:main Jun 14, 2026
15 of 17 checks passed
ChrisRackauckas added a commit that referenced this pull request Jun 20, 2026
The folder-based SciMLTesting harness (PR #36) runs test/alloc_tests.jl as
part of the Core group across the full version x OS matrix, including the
`pre` channel (currently 1.13.0-rc1). The original alloc test was deliberately
scoped to GROUP=nopre on a single x86_64-linux runner, because AllocCheck builds
on GPUCompiler/LLVM compiler internals that are unstable on Julia prereleases.

On 1.13.0-rc1 / aarch64-macOS, `@check_allocs` reports a spurious 1 allocation
(0 dynamic dispatches) for the surrogate call, failing CI. The same test passes
on lts (1.10), 1 (1.12), and even 1.13.0-rc1 on x86_64-linux. Verified locally:
file is a clean no-op on 1.13.0-rc1, and the AllocCheck tests still run and pass
(3/3, 1/1) on 1.10 and 1.12.

Gate the AllocCheck testsets on `isempty(VERSION.prerelease)`, restoring the
original nopre intent while keeping full coverage on released Julia.

Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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