Simplified benchmark output with --benchmark-no-analysis

Removed unused informations from benchmarks output when the --benchmark-no-analysis flag is used, making the results easier to read.
This commit is contained in:
RT222 2019-10-07 15:40:00 +02:00 committed by GitHub
parent 319cb9e1da
commit 2331249a8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 40 additions and 18 deletions

View File

@ -331,8 +331,8 @@ public:
tp.m_currentColumn++; tp.m_currentColumn++;
auto colInfo = tp.m_columnInfos[tp.m_currentColumn]; auto colInfo = tp.m_columnInfos[tp.m_currentColumn];
auto padding = (strSize + 2 < static_cast<std::size_t>(colInfo.width)) auto padding = (strSize + 1 < static_cast<std::size_t>(colInfo.width))
? std::string(colInfo.width - (strSize + 2), ' ') ? std::string(colInfo.width - (strSize + 1), ' ')
: std::string(); : std::string();
if (colInfo.justification == ColumnInfo::Left) if (colInfo.justification == ColumnInfo::Left)
tp.m_os << colStr << padding << ' '; tp.m_os << colStr << padding << ' ';
@ -353,12 +353,26 @@ public:
ConsoleReporter::ConsoleReporter(ReporterConfig const& config) ConsoleReporter::ConsoleReporter(ReporterConfig const& config)
: StreamingReporterBase(config), : StreamingReporterBase(config),
m_tablePrinter(new TablePrinter(config.stream(), m_tablePrinter(new TablePrinter(config.stream(),
[&config]() -> std::vector<ColumnInfo> {
if (config.fullConfig()->benchmarkNoAnalysis())
{ {
return{
{ "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 43, ColumnInfo::Left },
{ " samples", 14, ColumnInfo::Right },
{ " iterations", 14, ColumnInfo::Right },
{ " mean", 14, ColumnInfo::Right }
};
}
else
{
return{
{ "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 32, ColumnInfo::Left }, { "benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 32, ColumnInfo::Left },
{ "samples mean std dev", 14, ColumnInfo::Right }, { "samples mean std dev", 14, ColumnInfo::Right },
{ "iterations low mean low std dev", 14, ColumnInfo::Right }, { "iterations low mean low std dev", 14, ColumnInfo::Right },
{ "estimated high mean high std dev", 14, ColumnInfo::Right } { "estimated high mean high std dev", 14, ColumnInfo::Right }
})) {} };
}
}())) {}
ConsoleReporter::~ConsoleReporter() = default; ConsoleReporter::~ConsoleReporter() = default;
std::string ConsoleReporter::getDescription() { std::string ConsoleReporter::getDescription() {
@ -432,10 +446,17 @@ void ConsoleReporter::benchmarkPreparing(std::string const& name) {
void ConsoleReporter::benchmarkStarting(BenchmarkInfo const& info) { void ConsoleReporter::benchmarkStarting(BenchmarkInfo const& info) {
(*m_tablePrinter) << info.samples << ColumnBreak() (*m_tablePrinter) << info.samples << ColumnBreak()
<< info.iterations << ColumnBreak() << info.iterations << ColumnBreak();
<< Duration(info.estimatedDuration) << ColumnBreak(); if (!m_config->benchmarkNoAnalysis())
(*m_tablePrinter) << Duration(info.estimatedDuration) << ColumnBreak();
} }
void ConsoleReporter::benchmarkEnded(BenchmarkStats<> const& stats) { void ConsoleReporter::benchmarkEnded(BenchmarkStats<> const& stats) {
if (m_config->benchmarkNoAnalysis())
{
(*m_tablePrinter) << Duration(stats.mean.point.count()) << ColumnBreak();
}
else
{
(*m_tablePrinter) << ColumnBreak() (*m_tablePrinter) << ColumnBreak()
<< Duration(stats.mean.point.count()) << ColumnBreak() << Duration(stats.mean.point.count()) << ColumnBreak()
<< Duration(stats.mean.lower_bound.count()) << ColumnBreak() << Duration(stats.mean.lower_bound.count()) << ColumnBreak()
@ -444,6 +465,7 @@ void ConsoleReporter::benchmarkEnded(BenchmarkStats<> const& stats) {
<< Duration(stats.standardDeviation.lower_bound.count()) << ColumnBreak() << Duration(stats.standardDeviation.lower_bound.count()) << ColumnBreak()
<< Duration(stats.standardDeviation.upper_bound.count()) << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak(); << Duration(stats.standardDeviation.upper_bound.count()) << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak() << ColumnBreak();
} }
}
void ConsoleReporter::benchmarkFailed(std::string const& error) { void ConsoleReporter::benchmarkFailed(std::string const& error) {
Colour colour(Colour::Red); Colour colour(Colour::Red);