Skip to content

Canonicalize test units with @safetestset#53

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:canonicalize-safetestset
Closed

Canonicalize test units with @safetestset#53
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:canonicalize-safetestset

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

What

Canonicalize the test suite so each independent test unit runs in its own module via @safetestset (isolation between units + world-age safety), matching the canonical OrdinaryDiffEq structure.

Core group

  • The explicit-imports hygiene check is now @safetestset "Explicit Imports" include("explicit_imports.jl").
  • The bare top-level plot(...) recipe exercises (which had no assertions — they confirm the recipe runs without error) moved into a new self-contained test/recipes.jl, loaded via @safetestset "Recipes" include("recipes.jl").

QA group

  • The plain @testset "Aqua" and @testset "JET" units in test/qa/qa.jl become @safetestset, each carrying its own using imports. The Aqua.test_all(...) call and the @test_broken entries are preserved verbatim.

Deps

  • SafeTestsets added to the root [extras] / [targets].test / [compat] (SafeTestsets = "0.1, 1"), and to test/qa/Project.toml (the QA group activates its own project).

Behavior-preserving

Same tests run under the same GROUP dispatch, same assertions (including the @test_broken entries). The GROUP ladder / runtests structure is otherwise unchanged.

Verification (local, Julia 1.11)

  • GROUP=Core Pkg.test() -> Explicit Imports 2/2 pass; Recipes runs (0 assertions, as before). Passed.
  • GROUP=QA Pkg.test() -> Aqua 6 pass / 2 broken; JET 1 broken. Passed.
  • Runic-clean; all changed files parse cleanly.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

Wrap each independent test unit in `@safetestset` so it runs in its own
module (isolation + world-age safety), matching the canonical
OrdinaryDiffEq structure.

- Core: the explicit-imports check and the recipe-exercise calls are now
  `@safetestset` units. The bare `plot(...)` recipe exercises moved to a
  self-contained test/recipes.jl loaded via `@safetestset include(...)`.
- QA: the plain `@testset "Aqua"`/`@testset "JET"` units become
  `@safetestset`, each carrying its own imports.
- Add SafeTestsets to the root [extras]/[targets].test/[compat] and to
  test/qa/Project.toml (the QA group activates its own project).

Behavior-preserving: same tests run under the same GROUP dispatch, same
assertions (including the `@test_broken` entries). Verified locally with
`GROUP=Core` and `GROUP=QA` `Pkg.test()` on Julia 1.11.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor Author

superseded by the v1.2 folder conversion on sciml-testing-rollout (#52)

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