Skip to content

Commit 26e5248

Browse files
Merge pull request #2388 from SciML/test_groups
Split test groups
2 parents 4a5d676 + a79632a commit 26e5248

File tree

4 files changed

+87
-63
lines changed

4 files changed

+87
-63
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ jobs:
2121
test:
2222
runs-on: ubuntu-latest
2323
strategy:
24+
fail-fast: false
2425
matrix:
2526
group:
26-
- All
27+
- InterfaceI
28+
- InterfaceII
29+
- Extensions
2730
version:
2831
- '1'
2932
steps:
@@ -43,6 +46,8 @@ jobs:
4346
${{ runner.os }}-
4447
- uses: julia-actions/julia-buildpkg@v1
4548
- uses: julia-actions/julia-runtest@v1
49+
env:
50+
GROUP: ${{ matrix.group }}
4651
- uses: julia-actions/julia-processcoverage@v1
4752
- uses: codecov/codecov-action@v3
4853
with:

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ julia = "1.9"
109109
[extras]
110110
AmplNLWriter = "7c4d4715-977e-5154-bfe0-e096adeac482"
111111
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
112-
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
113112
ControlSystemsMTK = "687d7614-c7e5-45fc-bfc3-9ee385575c88"
114113
DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6"
115114
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
@@ -120,6 +119,7 @@ NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
120119
Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba"
121120
OptimizationMOI = "fd9f6733-72f4-499f-8506-86b2bdd0dea1"
122121
OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e"
122+
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
123123
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
124124
ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf"
125125
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
@@ -132,4 +132,4 @@ Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4"
132132
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
133133

134134
[targets]
135-
test = ["AmplNLWriter", "BenchmarkTools", "BifurcationKit", "ControlSystemsMTK", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq"]
135+
test = ["AmplNLWriter", "BenchmarkTools", "ControlSystemsMTK", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg"]

test/extensions/Project.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[deps]
2+
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
3+
4+
[compat]

test/runtests.jl

Lines changed: 75 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,78 @@
1-
using SafeTestsets, Test
1+
using SafeTestsets, Pkg, Test
22

3-
@safetestset "Linear Algebra Test" include("linalg.jl")
4-
@safetestset "AbstractSystem Test" include("abstractsystem.jl")
5-
@safetestset "Variable Scope Tests" include("variable_scope.jl")
6-
@safetestset "Symbolic Parameters Test" include("symbolic_parameters.jl")
7-
@safetestset "Parsing Test" include("variable_parsing.jl")
8-
@safetestset "Simplify Test" include("simplify.jl")
9-
@safetestset "Direct Usage Test" include("direct.jl")
10-
@safetestset "System Linearity Test" include("linearity.jl")
11-
@safetestset "Linearization Tests" include("linearize.jl")
12-
@safetestset "Input Output Test" include("input_output_handling.jl")
13-
@safetestset "Clock Test" include("clock.jl")
14-
@safetestset "DiscreteSystem Test" include("discretesystem.jl")
15-
@safetestset "ODESystem Test" include("odesystem.jl")
16-
@safetestset "Unitful Quantities Test" include("units.jl")
17-
@safetestset "LabelledArrays Test" include("labelledarrays.jl")
18-
@safetestset "Mass Matrix Test" include("mass_matrix.jl")
19-
@safetestset "SteadyStateSystem Test" include("steadystatesystems.jl")
20-
@safetestset "SDESystem Test" include("sdesystem.jl")
21-
@safetestset "NonlinearSystem Test" include("nonlinearsystem.jl")
22-
@safetestset "PDE Construction Test" include("pde.jl")
23-
@safetestset "JumpSystem Test" include("jumpsystem.jl")
24-
@safetestset "Constraints Test" include("constraints.jl")
25-
@safetestset "Reduction Test" include("reduction.jl")
26-
@safetestset "Split Parameters Test" include("split_parameters.jl")
27-
@safetestset "ODAEProblem Test" include("odaeproblem.jl")
28-
@safetestset "Components Test" include("components.jl")
29-
@safetestset "Model Parsing Test" include("model_parsing.jl")
30-
@safetestset "print_tree" include("print_tree.jl")
31-
@safetestset "Error Handling" include("error_handling.jl")
32-
@safetestset "StructuralTransformations" include("structural_transformation/runtests.jl")
33-
@safetestset "State Selection Test" include("state_selection.jl")
34-
@safetestset "Symbolic Event Test" include("symbolic_events.jl")
35-
@safetestset "Stream Connect Test" include("stream_connectors.jl")
36-
@safetestset "Domain Connect Test" include("domain_connectors.jl")
37-
@safetestset "Lowering Integration Test" include("lowering_solving.jl")
38-
@safetestset "Test Big System Usage" include("bigsystem.jl")
39-
@safetestset "Dependency Graph Test" include("dep_graphs.jl")
40-
@safetestset "Function Registration Test" include("function_registration.jl")
41-
@safetestset "Precompiled Modules Test" include("precompile_test.jl")
42-
@testset "Distributed Test" begin
43-
include("distributed.jl")
44-
end
45-
@safetestset "Variable Utils Test" include("variable_utils.jl")
46-
@safetestset "Variable Metadata Test" include("test_variable_metadata.jl")
47-
@safetestset "DAE Jacobians Test" include("dae_jacobian.jl")
48-
@safetestset "Jacobian Sparsity" include("jacobiansparsity.jl")
49-
println("Last test requires gcc available in the path!")
50-
@safetestset "C Compilation Test" include("ccompile.jl")
51-
@testset "Serialization" begin
52-
include("serialization.jl")
3+
const GROUP = get(ENV, "GROUP", "All")
4+
5+
function activate_extensions_env()
6+
Pkg.activate("extensions")
7+
Pkg.develop(PackageSpec(path = dirname(@__DIR__)))
8+
Pkg.instantiate()
539
end
54-
@safetestset "Modelingtoolkitize Test" include("modelingtoolkitize.jl")
55-
@safetestset "OptimizationSystem Test" include("optimizationsystem.jl")
56-
@safetestset "FuncAffect Test" include("funcaffect.jl")
57-
@safetestset "Constants Test" include("constants.jl")
58-
@safetestset "Inverse Models Test" include("inversemodel.jl")
59-
# Reference tests go Last
60-
if VERSION >= v"1.9"
61-
@safetestset "Latexify recipes Test" include("latexify.jl")
10+
11+
@time begin
12+
if GROUP == "All" || GROUP == "InterfaceI"
13+
@safetestset "Linear Algebra Test" include("linalg.jl")
14+
@safetestset "AbstractSystem Test" include("abstractsystem.jl")
15+
@safetestset "Variable Scope Tests" include("variable_scope.jl")
16+
@safetestset "Symbolic Parameters Test" include("symbolic_parameters.jl")
17+
@safetestset "Parsing Test" include("variable_parsing.jl")
18+
@safetestset "Simplify Test" include("simplify.jl")
19+
@safetestset "Direct Usage Test" include("direct.jl")
20+
@safetestset "System Linearity Test" include("linearity.jl")
21+
@safetestset "Linearization Tests" include("linearize.jl")
22+
@safetestset "Input Output Test" include("input_output_handling.jl")
23+
@safetestset "Clock Test" include("clock.jl")
24+
@safetestset "DiscreteSystem Test" include("discretesystem.jl")
25+
@safetestset "ODESystem Test" include("odesystem.jl")
26+
@safetestset "Unitful Quantities Test" include("units.jl")
27+
@safetestset "LabelledArrays Test" include("labelledarrays.jl")
28+
@safetestset "Mass Matrix Test" include("mass_matrix.jl")
29+
@safetestset "SteadyStateSystem Test" include("steadystatesystems.jl")
30+
@safetestset "SDESystem Test" include("sdesystem.jl")
31+
@safetestset "NonlinearSystem Test" include("nonlinearsystem.jl")
32+
@safetestset "PDE Construction Test" include("pde.jl")
33+
@safetestset "JumpSystem Test" include("jumpsystem.jl")
34+
@safetestset "Constraints Test" include("constraints.jl")
35+
@safetestset "Reduction Test" include("reduction.jl")
36+
@safetestset "Split Parameters Test" include("split_parameters.jl")
37+
@safetestset "ODAEProblem Test" include("odaeproblem.jl")
38+
@safetestset "Components Test" include("components.jl")
39+
@safetestset "Model Parsing Test" include("model_parsing.jl")
40+
@safetestset "print_tree" include("print_tree.jl")
41+
@safetestset "Error Handling" include("error_handling.jl")
42+
@safetestset "StructuralTransformations" include("structural_transformation/runtests.jl")
43+
@safetestset "State Selection Test" include("state_selection.jl")
44+
@safetestset "Symbolic Event Test" include("symbolic_events.jl")
45+
@safetestset "Stream Connect Test" include("stream_connectors.jl")
46+
@safetestset "Domain Connect Test" include("domain_connectors.jl")
47+
@safetestset "Lowering Integration Test" include("lowering_solving.jl")
48+
@safetestset "Test Big System Usage" include("bigsystem.jl")
49+
@safetestset "Dependency Graph Test" include("dep_graphs.jl")
50+
@safetestset "Function Registration Test" include("function_registration.jl")
51+
@safetestset "Precompiled Modules Test" include("precompile_test.jl")
52+
@safetestset "Variable Utils Test" include("variable_utils.jl")
53+
@safetestset "Variable Metadata Test" include("test_variable_metadata.jl")
54+
@safetestset "DAE Jacobians Test" include("dae_jacobian.jl")
55+
@safetestset "Jacobian Sparsity" include("jacobiansparsity.jl")
56+
@safetestset "Modelingtoolkitize Test" include("modelingtoolkitize.jl")
57+
@safetestset "OptimizationSystem Test" include("optimizationsystem.jl")
58+
@safetestset "FuncAffect Test" include("funcaffect.jl")
59+
@safetestset "Constants Test" include("constants.jl")
60+
@safetestset "Inverse Models Test" include("inversemodel.jl")
61+
end
62+
63+
if GROUP == "All" || GROUP == "InterfaceII"
64+
println("C compilation test requires gcc available in the path!")
65+
@safetestset "C Compilation Test" include("ccompile.jl")
66+
@testset "Distributed Test" include("distributed.jl")
67+
@testset "Serialization" include("serialization.jl")
68+
end
69+
70+
if GROUP == "All" || GROUP == "RegressionI"
71+
@safetestset "Latexify recipes Test" include("latexify.jl")
72+
end
73+
74+
if GROUP == "All" || GROUP == "Extensions"
75+
activate_extensions_env()
76+
@safetestset "BifurcationKit Extension Test" include("extensions/bifurcationkit.jl")
77+
end
6278
end
63-
@safetestset "BifurcationKit Extension Test" include("extensions/bifurcationkit.jl")

0 commit comments

Comments
 (0)