Commit Graph

3 Commits

Author SHA1 Message Date
John Beard 1b1e514544 QA: Move to a self-registering plugin system for QA utils
This means that utility programs no longer have to be manually
added to the COMBINED_UTILITY, they self-register their
information at static init time. This is basically the same concept
as the Boost test registration.

All utilities need to do now is register their UTILITY_PROGRAM info
struct with the UTILITY_REGISTRY::Register method. No headers required.
2019-11-25 15:38:21 +08:00
John Beard 781c5f7e1d Remove SCOPED_TIMER, use PROF_COUNTER
SCOPED_TIMER is a QA-only simpler version of PROF_COUNTER.

Extend PROF_COUNTER to allow access to the std::chrono::duration
for more flexibility.

Wrap PROF_COUNTER in SCOPED_PROF_COUNTER for RAII duration
output (for the same effect as SCOPED_TIMER).
2019-06-12 14:16:47 +01:00
John Beard 427f0aed78 QA sexpr: add a common_tool to parse sexpr files
This allows to feed any data directly into the sexpr parser. This can be
used for:

* Benchmarking, profiling and optimisation
* Fuzz testing
* Debugging

As an example, it demonstrates that a 15MB kicad PCB file (the CIAA
motherboard project) takes 1.5s to parse, and uses 140MB of heap
allocation within the Parse() method (using Valgrind massif).
2019-04-17 10:52:56 +01:00