Mercurial > repos > public > sbplib_julia
view README.md @ 1195:8a1de954bdf9 tooling/benchmarks
Even more readme
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 27 Jan 2023 22:19:06 +0100 |
parents | 007d90b354af |
children | 2f208828ae58 |
line wrap: on
line source
# Sbplib ## Running tests To run all tests simply run ``` (@v1.5) pkg> activate . (Sbplib) pkg> test ``` If you want to run tests from a specific file in `test/`, you can do ``` julia> using Pkg julia> Pkg.test(test_args=["[glob pattern]"]) ``` For example ``` julia> Pkg.test(test_args=["SbpOperators/*"]) ``` to run all test in the `SbpOperators` folder, or ``` julia> Pkg.test(test_args=["*/readoperators.jl"]) ``` to run only the tests in files named `readoperators.jl`. Multiple filters are allowed and will cause files matching any of the provided filters to be run. For example ``` Pkg.test(test_args=["*/lazy_tensor_operations_test.jl", "Grids/*"]) ``` will run any file named `lazy_tensor_operations_test.jl` and all the files in the `Grids` folder. ## Running benchmarks Benchmarks are defined in `benchmark/` and use the tools for benchmark suites in BenchmarkTools.jl The format is compatible with PkgBenchmark.jl which helps with running the suite, comparing results and presenting the results in a readable way. `benchmark/` contains a julia environment with the necessary packages for working with the benchmarks. There are custom functions included for running the benchmarks in this Mercurial repository. To use this first activate the environment in `benchmark/` then include the file `benchmark_utils.jl`. The suite can the be run from the REPL by using the function `main` in one of the following ways ```julia main() # Runs the suite for the current working directory main(rev) # Runs the suite at the specified revision main(target, baseline) # Compares two revisions ``` Here `rev`, `target` and `baseline` can be any valid Mercurial revision specifier. ```julia using PkgBenchmark import Sbplib r = benchmarkpkg(Sbplib) export_markdown(stdout, r) ``` #TODO: Finish this and clean it up ## Generating and using the documentation Generating the documentation can be done using either `make` or through activating the `docs` environment and including the script `docs/make.jl` at the REPL. Using `make` there are three targets ```shell make docs make localdocs make opendocs make help ``` The first variant generates files suitable for webserver deployment, i.e with `prettyurls=true`. The second generates files sutible for local viewing in a web browser, i.e `prettyurls=false`. To view the documentation locally simply open `docs/build/index.html` in your web browser. The documentation can be automatically built and opened using ```shell make opendocs ``` When including the `docs/make.jl` script `prettyurls` is set to `false` by default. Including `docs/make.jl` from the REPL may be preferable when repeatadely building the documentation since this avoids compilation latency.