Skip to content

How to output benchmark custom meta data correctly #2886

Open
@SimeonEhrig

Description

@SimeonEhrig

We want to use Catch2 benchmark for performance regression tests. Therefore we output the data as xml and store it in a database that we can compare the performance over different commits. For comparison reason, we need to store meta data, such like which compiler and which CPU was used and so one.

If we use std::cout, we get a single xml region, which contains all the output and we need to parse the content by our self to split up the different information.

<StdOut>
First output

Second output
second line of the second output
third output
</StdOut>

INFO, WARN and so one is similar. It has the advantage, that each output become it's own xml region, but there is still no difference between the xml region. Each INFO creates the same <Info> xml region and we need to search for an identifier in the content of the xml region to get the right information such like which compiler version.

In the best case, Catch2 provides a mechanism, which produces the following kind of xml output:

<CustomData>
  <CompilerVersion>GCC 11.4</CompilerVersion>
  <CPUName>AMD EPYC 7452 32-Core Processor</CPUName>
</CustomData>

Is there a feature in Catch2 to achieve it and if not, what is the best practice to get something similar?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions