mirror of
https://github.com/google/benchmark.git
synced 2025-03-22 23:20:29 +08:00
This patch begins a set of changes to convert the library to use JSON as the primary data type used to communicate with users; but for custom user input and output. The patch introduces the json.hpp header which is supplied by https://github.com/nlohmann/json. The header is used unmodified in the third_party directory. It is installed under the include/benchmark prefix. Additionally, this patch adds `Benchmark::WithInput` to allow the passing of arbitrary JSON as an input argument to a benchmark. The results of which can be accessed using `State::GetInput()`. This patch also adds `State::operator[](std::string)`, which allows users to report arbitrary JSON as output from a benchmark. See the documentation for examples.
19 lines
562 B
C++
19 lines
562 B
C++
//===---------------------------------------------------------------------===//
|
|
// disable_json_test - Test that the JSON header can be disabled by defining
|
|
// BENCHMARK_HAS_NO_JSON_HEADER.
|
|
//===---------------------------------------------------------------------===//
|
|
#define BENCHMARK_HAS_NO_JSON_HEADER
|
|
#include "benchmark/benchmark.h"
|
|
|
|
#ifdef BENCHMARK_JSON_H
|
|
#error json.h should not be included.
|
|
#endif
|
|
|
|
namespace benchmark {
|
|
struct json {
|
|
json() = delete;
|
|
}; // attempt to cause a duplicate definition error.
|
|
} // namespace benchmark
|
|
|
|
int main() {}
|