diff --git a/Project.toml b/Project.toml index 05a7ce8..2a0f237 100644 --- a/Project.toml +++ b/Project.toml @@ -9,7 +9,7 @@ authors = ["SciML"] ComponentArrays = "0.15" Random = "1.10" SafeTestsets = "0.1" -SciMLTesting = "1" +SciMLTesting = "1.5" Test = "1.10" julia = "1.10" diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 36fbb64..87da6e5 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -1,3 +1,6 @@ +# Aqua is otherwise a transitive dep of SciMLTesting, but it is kept here as a +# direct dep because Aqua's `Method ambiguity` check spawns a fresh subprocess +# that `using Aqua` against this env's load path, where only direct deps resolve. [deps] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" FunctionProperties = "f62d2435-5019-4c03-9749-2d4c77af0cbc" @@ -13,6 +16,6 @@ FunctionProperties = {path = "../.."} Aqua = "0.8" JET = "0.9,0.10,0.11" SafeTestsets = "0.0.1, 0.1" -SciMLTesting = "1" +SciMLTesting = "1.5" Test = "1" julia = "1.10" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index 7cdacc5..f98a736 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,14 +1,15 @@ -using FunctionProperties, Aqua, JET, Test +using SciMLTesting, FunctionProperties, JET, Test -@testset "Aqua" begin - # deps_compat disabled: missing [compat] for the Pkg test extra. - # Tracked in https://github.com/SciML/FunctionProperties.jl/issues/54 - Aqua.test_all(FunctionProperties; deps_compat = false) - @test_broken false # Aqua deps_compat: missing compat for Pkg extra — tracked in https://github.com/SciML/FunctionProperties.jl/issues/54 -end - -@testset "JET" begin - # JET finds `Cassette.m is not defined` in overdub(::typeof(nameof), ...). - # Tracked in https://github.com/SciML/FunctionProperties.jl/issues/54 - @test_broken false # JET: Cassette.m is not defined in overdub(::typeof(nameof), ...) — tracked in https://github.com/SciML/FunctionProperties.jl/issues/54 -end +# `hasbranching` is a compiler-introspection utility: it `code_typed`s `f` and scans the +# resulting IR for `Core.GotoIfNot` nodes, and builds the dispatch signature with +# `Core.Typeof`. Both names are internal to `Core` with no public equivalent +# (`typeof` differs from `Core.Typeof` on type-valued arguments, and `Base.typesof` +# is itself non-public), so these two accesses are ignored in the public-API checks. +run_qa( + FunctionProperties; + explicit_imports = true, + ei_kwargs = (; + all_explicit_imports_are_public = (; ignore = (:GotoIfNot,)), + all_qualified_accesses_are_public = (; ignore = (:Typeof,)), + ) +)