7 #include <boost/archive/text_iarchive.hpp>
8 #include <boost/archive/text_oarchive.hpp>
9 #include <boost/serialization/map.hpp>
13 #include "../settings/Settings.h"
24 std::chrono::milliseconds
time;
42 template<
typename TimeLimit>
53 return std::filesystem::temp_directory_path()/(
"benchmark-result-" + std::to_string(
stored_id) +
".xml");
59 boost::archive::text_oarchive oa(ofs);
72 boost::archive::text_iarchive ia(ifs);
86 os <<
"(" << results.
answer <<
", " << results.
exitCode <<
", " << results.
time.count() <<
"ms)" << std::endl;
87 os << results.
stdout << std::endl;
88 os << results.
stderr << std::endl;
static void remove(V &ts, const T &t)
const auto & settings_operation()
Retrieved operation settings.
std::ostream & operator<<(std::ostream &os, const BenchmarkResult &results)
Streaming operator for BenchmarkResult.
Results for a single benchmark run.
int exitCode
Shell exit code.
std::string stdout
Standard output (mostly for parsing the answer and additional information).
void cleanup(const TimeLimit &limit)
Properly detect timeouts.
std::chrono::milliseconds time
Runtime in milliseconds.
std::string stderr
Error output (mostly for parsing the answer and additional information).
void store(size_t id) const
std::size_t peak_memory_kbytes
Peak memory usage.
size_t stored_id
Identifier for temporary file.
std::map< std::string, std::string > additional
Arbitrary additional information that can be provided by the tool class.
std::string answer
Answer string.