6 #include "../src/check.h"
7 #include "benchmark/benchmark.h"
13 virtual void ReportRuns(
const std::vector<Run>& report) {
14 all_runs_.insert(all_runs_.end(),
begin(report),
end(report));
18 std::vector<Run> all_runs_;
26 TestCase(
const char* xname,
const char* xlabel)
31 void CheckRun(
Run const&
run)
const {
33 <<
run.benchmark_name;
43 std::vector<TestCase> ExpectedResults;
45 int AddCases(std::initializer_list<TestCase>
const&
v) {
47 ExpectedResults.push_back(
N);
52 #define CONCAT(x, y) CONCAT2(x, y)
53 #define CONCAT2(x, y) x##y
54 #define ADD_CASES(...) int CONCAT(dummy, __LINE__) = AddCases({__VA_ARGS__})
64 while (
state.KeepRunning()) {
70 ADD_CASES({
"BM_function"}, {
"BM_function_manual_registration"});
77 #ifndef BENCHMARK_HAS_NO_VARIADIC_REGISTER_BENCHMARK
85 std::pair<const char*, const char*> cases[] = {
86 {
"test1",
"One"}, {
"test2",
"Two"}, {
"test3",
"Three"}};
87 for (
auto const&
c : cases)
92 ADD_CASES({
"test1",
"One"}, {
"test2",
"Two"}, {
"test3",
"Three"});
94 #endif // BENCHMARK_HAS_NO_VARIADIC_REGISTER_BENCHMARK
108 #ifdef BENCHMARK_HAS_CXX11
115 #ifndef BENCHMARK_HAS_NO_VARIADIC_REGISTER_BENCHMARK
117 const char*
x =
"42";
119 while (st.KeepRunning()) {
134 TestReporter test_reporter;
138 auto EB = ExpectedResults.begin();
140 for (
Run const&
run : test_reporter.all_runs_) {
141 assert(EB != ExpectedResults.end());
145 assert(EB == ExpectedResults.end());
152 assert(ExpectedResults.size() != 0 &&
153 "must have at least one registered benchmark");
154 ExpectedResults.clear();
157 TestReporter test_reporter;
159 assert(num_ran == 0);
160 assert(test_reporter.all_runs_.begin() == test_reporter.all_runs_.end());
164 assert(num_ran == ExpectedResults.size());
167 auto EB = ExpectedResults.begin();
169 for (
Run const&
run : test_reporter.all_runs_) {
170 assert(EB != ExpectedResults.end());
174 assert(EB == ExpectedResults.end());
177 int main(
int argc,
char* argv[]) {