From a9806083661bde88ee30c86969730d99b0c4ba82 Mon Sep 17 00:00:00 2001 From: Charles Kawczynski Date: Fri, 8 Sep 2023 10:38:28 -0700 Subject: [PATCH] Extend aqua tests --- src/nl_solvers/newtons_method.jl | 1 - test/aqua.jl | 32 +++++++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/nl_solvers/newtons_method.jl b/src/nl_solvers/newtons_method.jl index 7198d37c..bd0709e0 100644 --- a/src/nl_solvers/newtons_method.jl +++ b/src/nl_solvers/newtons_method.jl @@ -2,7 +2,6 @@ export NewtonsMethod, KrylovMethod export JacobianFreeJVP, ForwardDiffJVP, ForwardDiffStepSize export ForwardDiffStepSize1, ForwardDiffStepSize2, ForwardDiffStepSize3 export ForcingTerm, ConstantForcing, EisenstatWalkerForcing -export Verbosity # TODO: Implement AutoDiffJVP after ClimaAtmos's cache is moved from f! to x (so # that we only need to define Dual.(x), and not also make_dual(f!)). diff --git a/test/aqua.jl b/test/aqua.jl index 2d0ddf8c..0577bfc4 100644 --- a/test/aqua.jl +++ b/test/aqua.jl @@ -1,13 +1,35 @@ -using Aqua using Test using ClimaTimeSteppers +using Aqua -@testset "Aqua tests" begin +@testset "Aqua tests (performance)" begin # This tests that we don't accidentally run into # https://github.com/JuliaLang/julia/issues/29393 - Aqua.test_unbound_args(ClimaTimeSteppers) + # Aqua.test_unbound_args(ClimaTimeSteppers) + ua = Aqua.detect_unbound_args_recursively(ClimaTimeSteppers) + @test length(ua) == 0 # See: https://github.com/SciML/OrdinaryDiffEq.jl/issues/1750 - # Test that we're not introducing method ambiguities - @test isempty(Aqua.detect_ambiguities(ClimaTimeSteppers; recursive = true)) + # Test that we're not introducing method ambiguities across deps + ambs = Aqua.detect_ambiguities(ClimaTimeSteppers; recursive = true) + pkg_match(pkgname, pkdir::Nothing) = false + pkg_match(pkgname, pkdir::AbstractString) = occursin(pkgname, pkdir) + filter!(x -> pkg_match("ClimaTimeSteppers", pkgdir(last(x).module)), ambs) + + # Uncomment for debugging: + # for method_ambiguity in ambs + # @show method_ambiguity + # end + @test length(ambs) == 0 end + +@testset "Aqua tests (additional)" begin + Aqua.test_undefined_exports(ClimaTimeSteppers) + Aqua.test_stale_deps(ClimaTimeSteppers) + Aqua.test_deps_compat(ClimaTimeSteppers) + Aqua.test_project_extras(ClimaTimeSteppers) + Aqua.test_project_toml_formatting(ClimaTimeSteppers) + Aqua.test_piracy(ClimaTimeSteppers) +end + +nothing