• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 #include "benchmark/benchmark.h"
3 #include "output_test.h"
4 
5 // ========================================================================= //
6 // ------------------------ Testing Basic Output --------------------------- //
7 // ========================================================================= //
8 
BM_ExplicitRepetitions(benchmark::State & state)9 static void BM_ExplicitRepetitions(benchmark::State& state) {
10   for (auto _ : state) {
11   }
12 }
13 BENCHMARK(BM_ExplicitRepetitions)->Repetitions(2);
14 
15 ADD_CASES(TC_ConsoleOut,
16           {{"^BM_ExplicitRepetitions/repeats:2 %console_report$"}});
17 ADD_CASES(TC_ConsoleOut,
18           {{"^BM_ExplicitRepetitions/repeats:2 %console_report$"}});
19 ADD_CASES(TC_ConsoleOut,
20           {{"^BM_ExplicitRepetitions/repeats:2_mean %console_report$"}});
21 ADD_CASES(TC_ConsoleOut,
22           {{"^BM_ExplicitRepetitions/repeats:2_median %console_report$"}});
23 ADD_CASES(TC_ConsoleOut,
24           {{"^BM_ExplicitRepetitions/repeats:2_stddev %console_report$"}});
25 ADD_CASES(TC_JSONOut,
26           {{"\"name\": \"BM_ExplicitRepetitions/repeats:2\",$"},
27            {"\"family_index\": 0,$", MR_Next},
28            {"\"per_family_instance_index\": 0,$", MR_Next},
29            {"\"run_name\": \"BM_ExplicitRepetitions/repeats:2\",$", MR_Next},
30            {"\"run_type\": \"iteration\",$", MR_Next},
31            {"\"repetitions\": 2,$", MR_Next},
32            {"\"repetition_index\": 0,$", MR_Next},
33            {"\"threads\": 1,$", MR_Next},
34            {"\"iterations\": %int,$", MR_Next},
35            {"\"real_time\": %float,$", MR_Next},
36            {"\"cpu_time\": %float,$", MR_Next},
37            {"\"time_unit\": \"ns\"$", MR_Next},
38            {"}", MR_Next}});
39 ADD_CASES(TC_JSONOut,
40           {{"\"name\": \"BM_ExplicitRepetitions/repeats:2\",$"},
41            {"\"family_index\": 0,$", MR_Next},
42            {"\"per_family_instance_index\": 0,$", MR_Next},
43            {"\"run_name\": \"BM_ExplicitRepetitions/repeats:2\",$", MR_Next},
44            {"\"run_type\": \"iteration\",$", MR_Next},
45            {"\"repetitions\": 2,$", MR_Next},
46            {"\"repetition_index\": 1,$", MR_Next},
47            {"\"threads\": 1,$", MR_Next},
48            {"\"iterations\": %int,$", MR_Next},
49            {"\"real_time\": %float,$", MR_Next},
50            {"\"cpu_time\": %float,$", MR_Next},
51            {"\"time_unit\": \"ns\"$", MR_Next},
52            {"}", MR_Next}});
53 ADD_CASES(TC_JSONOut,
54           {{"\"name\": \"BM_ExplicitRepetitions/repeats:2_mean\",$"},
55            {"\"family_index\": 0,$", MR_Next},
56            {"\"per_family_instance_index\": 0,$", MR_Next},
57            {"\"run_name\": \"BM_ExplicitRepetitions/repeats:2\",$", MR_Next},
58            {"\"run_type\": \"aggregate\",$", MR_Next},
59            {"\"repetitions\": 2,$", MR_Next},
60            {"\"threads\": 1,$", MR_Next},
61            {"\"aggregate_name\": \"mean\",$", MR_Next},
62            {"\"aggregate_unit\": \"time\",$", MR_Next},
63            {"\"iterations\": %int,$", MR_Next},
64            {"\"real_time\": %float,$", MR_Next},
65            {"\"cpu_time\": %float,$", MR_Next},
66            {"\"time_unit\": \"ns\"$", MR_Next},
67            {"}", MR_Next}});
68 ADD_CASES(TC_JSONOut,
69           {{"\"name\": \"BM_ExplicitRepetitions/repeats:2_median\",$"},
70            {"\"family_index\": 0,$", MR_Next},
71            {"\"per_family_instance_index\": 0,$", MR_Next},
72            {"\"run_name\": \"BM_ExplicitRepetitions/repeats:2\",$", MR_Next},
73            {"\"run_type\": \"aggregate\",$", MR_Next},
74            {"\"repetitions\": 2,$", MR_Next},
75            {"\"threads\": 1,$", MR_Next},
76            {"\"aggregate_name\": \"median\",$", MR_Next},
77            {"\"aggregate_unit\": \"time\",$", MR_Next},
78            {"\"iterations\": %int,$", MR_Next},
79            {"\"real_time\": %float,$", MR_Next},
80            {"\"cpu_time\": %float,$", MR_Next},
81            {"\"time_unit\": \"ns\"$", MR_Next},
82            {"}", MR_Next}});
83 ADD_CASES(TC_JSONOut,
84           {{"\"name\": \"BM_ExplicitRepetitions/repeats:2_stddev\",$"},
85            {"\"family_index\": 0,$", MR_Next},
86            {"\"per_family_instance_index\": 0,$", MR_Next},
87            {"\"run_name\": \"BM_ExplicitRepetitions/repeats:2\",$", MR_Next},
88            {"\"run_type\": \"aggregate\",$", MR_Next},
89            {"\"repetitions\": 2,$", MR_Next},
90            {"\"threads\": 1,$", MR_Next},
91            {"\"aggregate_name\": \"stddev\",$", MR_Next},
92            {"\"aggregate_unit\": \"time\",$", MR_Next},
93            {"\"iterations\": %int,$", MR_Next},
94            {"\"real_time\": %float,$", MR_Next},
95            {"\"cpu_time\": %float,$", MR_Next},
96            {"\"time_unit\": \"ns\"$", MR_Next},
97            {"}", MR_Next}});
98 ADD_CASES(TC_CSVOut, {{"^\"BM_ExplicitRepetitions/repeats:2\",%csv_report$"}});
99 ADD_CASES(TC_CSVOut, {{"^\"BM_ExplicitRepetitions/repeats:2\",%csv_report$"}});
100 ADD_CASES(TC_CSVOut,
101           {{"^\"BM_ExplicitRepetitions/repeats:2_mean\",%csv_report$"}});
102 ADD_CASES(TC_CSVOut,
103           {{"^\"BM_ExplicitRepetitions/repeats:2_median\",%csv_report$"}});
104 ADD_CASES(TC_CSVOut,
105           {{"^\"BM_ExplicitRepetitions/repeats:2_stddev\",%csv_report$"}});
106 
107 // ========================================================================= //
108 // ------------------------ Testing Basic Output --------------------------- //
109 // ========================================================================= //
110 
BM_ImplicitRepetitions(benchmark::State & state)111 static void BM_ImplicitRepetitions(benchmark::State& state) {
112   for (auto _ : state) {
113   }
114 }
115 BENCHMARK(BM_ImplicitRepetitions);
116 
117 ADD_CASES(TC_ConsoleOut, {{"^BM_ImplicitRepetitions %console_report$"}});
118 ADD_CASES(TC_ConsoleOut, {{"^BM_ImplicitRepetitions %console_report$"}});
119 ADD_CASES(TC_ConsoleOut, {{"^BM_ImplicitRepetitions %console_report$"}});
120 ADD_CASES(TC_ConsoleOut, {{"^BM_ImplicitRepetitions_mean %console_report$"}});
121 ADD_CASES(TC_ConsoleOut, {{"^BM_ImplicitRepetitions_median %console_report$"}});
122 ADD_CASES(TC_ConsoleOut, {{"^BM_ImplicitRepetitions_stddev %console_report$"}});
123 ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ImplicitRepetitions\",$"},
124                        {"\"family_index\": 1,$", MR_Next},
125                        {"\"per_family_instance_index\": 0,$", MR_Next},
126                        {"\"run_name\": \"BM_ImplicitRepetitions\",$", MR_Next},
127                        {"\"run_type\": \"iteration\",$", MR_Next},
128                        {"\"repetitions\": 3,$", MR_Next},
129                        {"\"repetition_index\": 0,$", MR_Next},
130                        {"\"threads\": 1,$", MR_Next},
131                        {"\"iterations\": %int,$", MR_Next},
132                        {"\"real_time\": %float,$", MR_Next},
133                        {"\"cpu_time\": %float,$", MR_Next},
134                        {"\"time_unit\": \"ns\"$", MR_Next},
135                        {"}", MR_Next}});
136 ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ImplicitRepetitions\",$"},
137                        {"\"family_index\": 1,$", MR_Next},
138                        {"\"per_family_instance_index\": 0,$", MR_Next},
139                        {"\"run_name\": \"BM_ImplicitRepetitions\",$", MR_Next},
140                        {"\"run_type\": \"iteration\",$", MR_Next},
141                        {"\"repetitions\": 3,$", MR_Next},
142                        {"\"repetition_index\": 1,$", MR_Next},
143                        {"\"threads\": 1,$", MR_Next},
144                        {"\"iterations\": %int,$", MR_Next},
145                        {"\"real_time\": %float,$", MR_Next},
146                        {"\"cpu_time\": %float,$", MR_Next},
147                        {"\"time_unit\": \"ns\"$", MR_Next},
148                        {"}", MR_Next}});
149 ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ImplicitRepetitions\",$"},
150                        {"\"family_index\": 1,$", MR_Next},
151                        {"\"per_family_instance_index\": 0,$", MR_Next},
152                        {"\"run_name\": \"BM_ImplicitRepetitions\",$", MR_Next},
153                        {"\"run_type\": \"iteration\",$", MR_Next},
154                        {"\"repetitions\": 3,$", MR_Next},
155                        {"\"repetition_index\": 2,$", MR_Next},
156                        {"\"threads\": 1,$", MR_Next},
157                        {"\"iterations\": %int,$", MR_Next},
158                        {"\"real_time\": %float,$", MR_Next},
159                        {"\"cpu_time\": %float,$", MR_Next},
160                        {"\"time_unit\": \"ns\"$", MR_Next},
161                        {"}", MR_Next}});
162 ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ImplicitRepetitions_mean\",$"},
163                        {"\"family_index\": 1,$", MR_Next},
164                        {"\"per_family_instance_index\": 0,$", MR_Next},
165                        {"\"run_name\": \"BM_ImplicitRepetitions\",$", MR_Next},
166                        {"\"run_type\": \"aggregate\",$", MR_Next},
167                        {"\"repetitions\": 3,$", MR_Next},
168                        {"\"threads\": 1,$", MR_Next},
169                        {"\"aggregate_name\": \"mean\",$", MR_Next},
170                        {"\"aggregate_unit\": \"time\",$", MR_Next},
171                        {"\"iterations\": %int,$", MR_Next},
172                        {"\"real_time\": %float,$", MR_Next},
173                        {"\"cpu_time\": %float,$", MR_Next},
174                        {"\"time_unit\": \"ns\"$", MR_Next},
175                        {"}", MR_Next}});
176 ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ImplicitRepetitions_median\",$"},
177                        {"\"family_index\": 1,$", MR_Next},
178                        {"\"per_family_instance_index\": 0,$", MR_Next},
179                        {"\"run_name\": \"BM_ImplicitRepetitions\",$", MR_Next},
180                        {"\"run_type\": \"aggregate\",$", MR_Next},
181                        {"\"repetitions\": 3,$", MR_Next},
182                        {"\"threads\": 1,$", MR_Next},
183                        {"\"aggregate_name\": \"median\",$", MR_Next},
184                        {"\"aggregate_unit\": \"time\",$", MR_Next},
185                        {"\"iterations\": %int,$", MR_Next},
186                        {"\"real_time\": %float,$", MR_Next},
187                        {"\"cpu_time\": %float,$", MR_Next},
188                        {"\"time_unit\": \"ns\"$", MR_Next},
189                        {"}", MR_Next}});
190 ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ImplicitRepetitions_stddev\",$"},
191                        {"\"family_index\": 1,$", MR_Next},
192                        {"\"per_family_instance_index\": 0,$", MR_Next},
193                        {"\"run_name\": \"BM_ImplicitRepetitions\",$", MR_Next},
194                        {"\"run_type\": \"aggregate\",$", MR_Next},
195                        {"\"repetitions\": 3,$", MR_Next},
196                        {"\"threads\": 1,$", MR_Next},
197                        {"\"aggregate_name\": \"stddev\",$", MR_Next},
198                        {"\"aggregate_unit\": \"time\",$", MR_Next},
199                        {"\"iterations\": %int,$", MR_Next},
200                        {"\"real_time\": %float,$", MR_Next},
201                        {"\"cpu_time\": %float,$", MR_Next},
202                        {"\"time_unit\": \"ns\"$", MR_Next},
203                        {"}", MR_Next}});
204 ADD_CASES(TC_CSVOut, {{"^\"BM_ImplicitRepetitions\",%csv_report$"}});
205 ADD_CASES(TC_CSVOut, {{"^\"BM_ImplicitRepetitions\",%csv_report$"}});
206 ADD_CASES(TC_CSVOut, {{"^\"BM_ImplicitRepetitions_mean\",%csv_report$"}});
207 ADD_CASES(TC_CSVOut, {{"^\"BM_ImplicitRepetitions_median\",%csv_report$"}});
208 ADD_CASES(TC_CSVOut, {{"^\"BM_ImplicitRepetitions_stddev\",%csv_report$"}});
209 
210 // ========================================================================= //
211 // --------------------------- TEST CASES END ------------------------------ //
212 // ========================================================================= //
213 
main(int argc,char * argv[])214 int main(int argc, char* argv[]) { RunOutputTests(argc, argv); }
215