Mercurial > repos > public > sbplib_julia
annotate test/runtests.jl @ 2015:5c2448d6a201 feature/grids/geometry_functions tip
Structure tests a bit more
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Fri, 09 May 2025 15:57:38 +0200 |
| parents | 6a56a853271d |
| children |
| rev | line source |
|---|---|
|
1753
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
1 using Diffinitive |
|
333
01b851161018
Start converting to one package by moving all the files to their correct location
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 using Test |
|
1753
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
3 using JET |
|
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
4 using Aqua |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
5 using Glob |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
6 |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
7 """ |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
8 run_testfiles() |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
9 run_testfiles(path, globs) |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
10 |
|
711
df88aee35bb9
Switch to _test.jl suffix
Jonatan Werpers <jonatan@werpers.com>
parents:
709
diff
changeset
|
11 Find and run all files with filenames ending with "_test.jl". If `path` is omitted the test folder is assumed. |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
12 The argument `globs` can optionally be supplied to filter which test files are run. |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
13 """ |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
14 function run_testfiles(args) |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
15 if isempty(args) |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
16 globs = [fn"./*"] |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
17 else |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
18 globs = Glob.FilenameMatch.("./".*args) |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
19 end |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
20 |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
21 run_testfiles(".", globs) |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
22 end |
|
333
01b851161018
Start converting to one package by moving all the files to their correct location
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 |
|
1851
6a56a853271d
Fix some white space
Jonatan Werpers <jonatan@werpers.com>
parents:
1765
diff
changeset
|
24 function run_testfiles(path, globs) |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
25 for name ∈ readdir(path) |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
26 filepath = joinpath(path, name) |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
27 |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
28 if isdir(filepath) |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
29 @testset "$name" begin |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
30 run_testfiles(filepath, globs) |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
31 end |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
32 end |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
33 |
|
717
1c5600a711ae
Allow multiple filters
Jonatan Werpers <jonatan@werpers.com>
parents:
713
diff
changeset
|
34 if endswith(name, "_test.jl") && any(occursin.(globs, filepath)) |
|
1765
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
35 log_and_time(filepath) do |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
36 @testset "$name" begin |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
37 include(filepath) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
38 end |
|
713
be648c6d6686
Wrap each file in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
711
diff
changeset
|
39 end |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
40 end |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
41 end |
|
333
01b851161018
Start converting to one package by moving all the files to their correct location
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
42 end |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
43 |
|
1765
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
44 function log_and_time(f, msg) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
45 printstyled("Running "; bold=true, color=:green) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
46 print(msg) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
47 |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
48 t_start = time() |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
49 f() |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
50 t_end = time() |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
51 Δt = t_end - t_start |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
52 printstyled(" ($(round(Δt, digits=2)) s)"; color=:light_black) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
53 println() |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
54 end |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
55 |
|
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1285
diff
changeset
|
56 testsetname = isempty(ARGS) ? "Diffinitive.jl" : "["*join(ARGS, ", ")*"]" |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
57 |
|
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
58 @testset "$testsetname" begin |
|
1753
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
59 if isempty(ARGS) |
|
1765
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
60 log_and_time("code quality tests using Aqua.jl") do |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
61 @testset "Code quality (Aqua.jl)" begin |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
62 Aqua.test_all(Diffinitive) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
63 end |
|
1753
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
64 end |
|
1765
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
65 |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
66 log_and_time("code linting using JET.jl") do |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
67 @testset "Code linting (JET.jl)" begin |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
68 JET.test_package(Diffinitive; target_defined_modules = true) |
|
5e4b2f8e9bf9
Improve logging when running tests
Jonatan Werpers <jonatan@werpers.com>
parents:
1753
diff
changeset
|
69 end |
|
1753
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
70 end |
|
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
71 end |
|
c1ebc96961a2
Add JET and Aqua to test suite
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
72 |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
73 run_testfiles(ARGS) |
| 1285 | 74 println() |
|
709
48a61e085e60
Add function for selecting tests
Jonatan Werpers <jonatan@werpers.com>
parents:
445
diff
changeset
|
75 end |
