Testing tools, like spies, for modern C++ development. More...
Classes | |
| class | benchmark_runner |
| A class to run multiple suites of benchmarks. More... | |
| struct | benchmark_runner_error |
Error thrown by the benchmark_runner when it should not execute. More... | |
| struct | benchmark_settings |
| Settings to configure a benchmark run. More... | |
| class | benchmark_suite |
| A suite of benchmarks. More... | |
| class | benchmark_suite< void > |
| struct | copy_spy |
| Utility for testing how many times an object is copied. More... | |
| class | spy_fn |
| Functor that counts the number of times it was called. More... | |
| class | variant_spy |
| Class for spying on functions that take a variant as a parameter. More... | |
Functions | |
| void | unoptimize (const void *) |
| Utility to prevent calls to code the could be inlineable by the compiler being removed completely if the compiler can find this is a no-op. More... | |
| template<typename T > | |
| void | unoptimize (const T &x) |
| template<typename FnT > | |
| auto | timeit (FnT &&fn) -> std::chrono::duration< double, std::milli > |
In the spirit of Python's timeit(), takes a nullary function and evaluates it, calculating how long it takes to execute. More... | |
| template<typename FnT > | |
| int | benchmark_main (int argc, char const *const *argv, FnT &&fn) |
Creates a benchmark_runner and passes it to fn, returning a zero (success) code. More... | |
| template<typename Fn > | |
| auto | spy (const Fn &fn) -> spy_fn< Fn > |
| Returns a spy object that uses fn as mock implementation. More... | |
| auto | spy () -> spy_fn<> |
| Returns a spy object with a no-op mock implementation. More... | |
| template<typename MockT > | |
| auto | spy_on (MockT &mock) -> spy_fn< detail::scoped_intruder< MockT > > |
Given a functor object mock of a general functor with type erasure (e.g. More... | |
| template<typename MockT , typename FnT > | |
| auto | spy_on (MockT &mock, const FnT &replacement) -> spy_fn< detail::scoped_intruder< MockT > > |
Like spy_on(), but it installs the replacement function instead of keeping the original one. More... | |
Detailed Description
Testing tools, like spies, for modern C++ development.
Function Documentation
| int atria::testing::benchmark_main | ( | int | argc, |
| char const *const * | argv, | ||
| FnT && | fn | ||
| ) |
Creates a benchmark_runner and passes it to fn, returning a zero (success) code.
If there is an error, prints it to the command line and returns a non-zero (failure) value.
Definition at line 291 of file benchmark.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
| auto atria::testing::timeit | ( | FnT && | fn | ) | -> std::chrono::duration<double, std::milli> |
In the spirit of Python's timeit(), takes a nullary function and evaluates it, calculating how long it takes to execute.
Definition at line 69 of file benchmark.hpp.
| void atria::testing::unoptimize | ( | const void * | ) |
Utility to prevent calls to code the could be inlineable by the compiler being removed completely if the compiler can find this is a no-op.
Just make sure the code returns something that is derived from the work you are interested in benchmarking and passed to this function.

1.8.10