bench: Represents paths with fs::path instead of std::string

Also uses fs::path quoting in bench printed strings and fixes a
misleading error message.

Originally suggested https://github.com/bitcoin/bitcoin/pull/20744#issuecomment-1022486215

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
This commit is contained in:
Ryan Ofsky
2022-02-03 10:53:57 -05:00
parent 3ace3a17c9
commit 824e1ffa9f
3 changed files with 11 additions and 10 deletions

View File

@@ -24,20 +24,19 @@ const std::function<std::vector<const char*>()> G_TEST_COMMAND_LINE_ARGUMENTS{};
namespace {
void GenerateTemplateResults(const std::vector<ankerl::nanobench::Result>& benchmarkResults, const std::string& filename, const char* tpl)
void GenerateTemplateResults(const std::vector<ankerl::nanobench::Result>& benchmarkResults, const fs::path& file, const char* tpl)
{
if (benchmarkResults.empty() || filename.empty()) {
if (benchmarkResults.empty() || file.empty()) {
// nothing to write, bail out
return;
}
std::ofstream fout{fs::PathFromString(filename)};
std::ofstream fout{file};
if (fout.is_open()) {
ankerl::nanobench::render(tpl, benchmarkResults, fout);
std::cout << "Created " << file << std::endl;
} else {
std::cout << "Could write to file '" << filename << "'" << std::endl;
std::cout << "Could not write to file " << file << std::endl;
}
std::cout << "Created '" << filename << "'" << std::endl;
}
} // namespace