Skip to content

Commit

Permalink
Add support for parallel testing (#2035)
Browse files Browse the repository at this point in the history
  • Loading branch information
aaruni96 authored Feb 21, 2025
1 parent 9f13235 commit d1c1e1b
Show file tree
Hide file tree
Showing 9 changed files with 155 additions and 120 deletions.
24 changes: 0 additions & 24 deletions test/Fields-test.jl

This file was deleted.

6 changes: 0 additions & 6 deletions test/Generic-test.jl

This file was deleted.

121 changes: 110 additions & 11 deletions test/Nemo-test.jl
Original file line number Diff line number Diff line change
@@ -1,12 +1,111 @@
include("Fields-test.jl")
include("Rings-test.jl")
include("Generic-test.jl")
include("Benchmark-test.jl")
include("gaussiannumbers/continued_fraction-test.jl")
include("Native-test.jl")
include("Infinity-test.jl")
include("HeckeMiscLocalization-test.jl")
include("matrix-test.jl")
include("poly-test.jl")
include("ZZMatrix-linalg-test.jl")
testlist = [
# Aqua.jl
"Aqua.jl",
# Fields-test.jl
"flint/fmpq-test.jl",
"flint/gfp-test.jl",
"flint/gfp_fmpz-test.jl",
"flint/fq-test.jl",
"flint/fq_nmod-test.jl",
"flint/fq_default-test.jl",
"flint/fq_default_extended-test.jl",
"flint/fq_embed-test.jl",
"flint/fq_nmod_embed-test.jl",
"flint/fq_default_embed-test.jl",
"flint/padic-test.jl",
"flint/qadic-test.jl",
"antic/nf_elem-test.jl",
"arb/arb-test.jl",
"arb/Real-test.jl",
"arb/acb-test.jl",
"arb/Complex-test.jl",
"calcium/ca-test.jl",
"calcium/qqbar-test.jl",
"gaussiannumbers/fmpqi-test.jl",
# Rings-test.jl
"flint/fmpz-test.jl",
"flint/fmpz_factor-test.jl",
"flint/fmpz_poly-test.jl",
"flint/fmpz_mod_poly-test.jl",
"flint/gfp_fmpz_poly-test.jl",
"flint/nmod-test.jl",
"flint/fmpz_mod-test.jl",
"flint/nmod_poly-test.jl",
"flint/gfp_poly-test.jl",
"flint/fmpq_poly-test.jl",
"flint/fq_poly-test.jl",
"flint/fq_nmod_poly-test.jl",
"flint/fq_default_poly-test.jl",
# The following two tests are included in fmpz-test.jl
# "flint/fmpz_rel_series-test.jl",
# "flint/fmpz_abs_series-test.jl",
"flint/fmpz_laurent_series-test.jl",
"flint/fmpz_puiseux_series-test.jl",
# The following two tests are included in fmpq-test.jl
# "flint/fmpq_rel_series-test.jl",
# "flint/fmpq_abs_series-test.jl",
"flint/nmod_abs_series-test.jl",
"flint/gfp_abs_series-test.jl",
"flint/fmpz_mod_abs_series-test.jl",
"flint/gfp_fmpz_abs_series-test.jl",
"flint/nmod_rel_series-test.jl",
"flint/gfp_rel_series-test.jl",
"flint/fmpz_mod_rel_series-test.jl",
"flint/gfp_fmpz_rel_series-test.jl",
"flint/fq_rel_series-test.jl",
"flint/fq_abs_series-test.jl",
"flint/fq_nmod_rel_series-test.jl",
"flint/fq_nmod_abs_series-test.jl",
"flint/fq_default_abs_series-test.jl",
"flint/fq_default_rel_series-test.jl",
"flint/nmod_mat-test.jl",
"flint/fmpz_mod_mat-test.jl",
"flint/gfp_mat-test.jl",
"flint/gfp_fmpz_mat-test.jl",
"flint/fq_mat-test.jl",
"flint/fq_nmod_mat-test.jl",
"flint/fq_default_mat-test.jl",
"flint/fmpz_mat-test.jl",
"flint/fmpq_mat-test.jl",
"arb/arb_poly-test.jl",
"arb/RealPoly-test.jl",
"arb/acb_poly-test.jl",
"arb/ComplexPoly-test.jl",
"arb/arb_mat-test.jl",
"arb/RealMat-test.jl",
"arb/acb_mat-test.jl",
"arb/ComplexMat-test.jl",
"flint/fmpz_mpoly-test.jl",
"flint/fmpq_mpoly-test.jl",
"flint/nmod_mpoly-test.jl",
"flint/gfp_mpoly-test.jl",
"flint/gfp_fmpz_mpoly-test.jl",
"flint/fq_nmod_mpoly-test.jl",
"flint/fq_default_mpoly-test.jl",
"gaussiannumbers/fmpzi-test.jl",
# Generic-test.jl
"generic/Poly-test.jl",
"generic/MPoly-test.jl",
"generic/UnivPoly-test.jl",
"generic/Matrix-test.jl",
"generic/Module-test.jl",
"generic/AbsMSeries-test.jl",
# Benchmark-test.jl
"Benchmark-test.jl",
# gaussiannumbers/continued_fraction-test.jl
"gaussiannumbers/continued_fraction-test.jl",
# Native-test.jl
"Native-test.jl",
# Infinity-test.jl
"Infinity-test.jl",
# HeckeMiscLocalization-test.jl
"HeckeMiscLocalization-test.jl",
# matrix-test.jl
"matrix-test.jl",
# poly-test.jl
"poly-test.jl",
# ZZMatrix-linalg-test.jl
"ZZMatrix-linalg-test.jl"
]

pmap(include, testlist)
2 changes: 2 additions & 0 deletions test/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[compat]
Aqua = "0.8.2"
InteractiveUtils = "1.6"
Test = "1.6"
Distributed = "1.6"
73 changes: 0 additions & 73 deletions test/Rings-test.jl

This file was deleted.

3 changes: 3 additions & 0 deletions test/flint/fmpq-test.jl
Original file line number Diff line number Diff line change
Expand Up @@ -699,3 +699,6 @@ end
@test is_power(QQ(1//2), 2)[1] == false
@test is_power(QQ(4//9), 2) == (true, 2//3)
end

include("fmpq_rel_series-test.jl")
include("fmpq_abs_series-test.jl")
3 changes: 3 additions & 0 deletions test/flint/fmpz-test.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1683,3 +1683,6 @@ end
@test @inferred collect(bits(ZZ(5))) == Bool[true, false, true]
@test @inferred collect(bits(ZZ(2)^64)) == append!([true], falses(64))
end

include("fmpz_rel_series-test.jl")
include("fmpz_abs_series-test.jl")
2 changes: 2 additions & 0 deletions test/flint/fq_default_extended-test.jl
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import Nemo: AbstractAlgebra.PrettyPrinting

@testset "FqFieldElem.constructors" begin
R, a = finite_field(ZZRingElem(7), 5, "a")
Rx, x = R["x"]
Expand Down
41 changes: 35 additions & 6 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,10 +1,39 @@
using Nemo
using Test
using InteractiveUtils: @which

import Nemo.AbstractAlgebra
include(joinpath(pathof(AbstractAlgebra), "..", "..", "test", "Rings-conformance-tests.jl"))
using Distributed

include("Aqua.jl")
include("rand.jl")
numprocs_str = get(ENV, "NUMPROCS", "1")

if !isempty(ARGS)
jargs = [arg for arg in ARGS if startswith(arg, "-j")]
if !isempty(jargs)
numprocs_str = split(jargs[end], "-j")[end]
end
end

const numprocs = parse(Int, numprocs_str)

if numprocs >= 2
println("Adding worker processes")
addprocs(numprocs)
end

@everywhere using Nemo
@everywhere using Test
@everywhere using InteractiveUtils: @which
@everywhere import Nemo.AbstractAlgebra
@everywhere const ring_to_mat = Dict(ZZ => ZZMatrix,
QQ => QQMatrix,
residue_ring(ZZ, 9)[1] => zzModMatrix,
GF(5) => fpMatrix,
finite_field(3, 2, "b")[1] => fqPolyRepMatrix,
finite_field(ZZRingElem(3), 2, "b")[1] => FqPolyRepMatrix,
ArbField() => ArbMatrix,
AcbField() => AcbMatrix,
RealField() => RealMatrix,
ComplexField() => ComplexMatrix,
)

@everywhere include(joinpath(pathof(AbstractAlgebra), "..", "..", "test", "Rings-conformance-tests.jl"))
@everywhere include("rand.jl")
include("Nemo-test.jl")

0 comments on commit d1c1e1b

Please sign in to comment.