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