xref: /llvm-project/third-party/benchmark/test/spec_arg_verbosity_test.cc (revision a5b797172cc902db166e9a695716fb81405f86e4)
1*a5b79717SMircea Trofin #include <string.h>
2*a5b79717SMircea Trofin 
3*a5b79717SMircea Trofin #include <iostream>
4*a5b79717SMircea Trofin 
5*a5b79717SMircea Trofin #include "benchmark/benchmark.h"
6*a5b79717SMircea Trofin 
7*a5b79717SMircea Trofin // Tests that the user specified verbosity level can be get.
BM_Verbosity(benchmark::State & state)8*a5b79717SMircea Trofin static void BM_Verbosity(benchmark::State& state) {
9*a5b79717SMircea Trofin   for (auto _ : state) {
10*a5b79717SMircea Trofin   }
11*a5b79717SMircea Trofin }
12*a5b79717SMircea Trofin BENCHMARK(BM_Verbosity);
13*a5b79717SMircea Trofin 
main(int argc,char ** argv)14*a5b79717SMircea Trofin int main(int argc, char** argv) {
15*a5b79717SMircea Trofin   const int32_t flagv = 42;
16*a5b79717SMircea Trofin 
17*a5b79717SMircea Trofin   // Verify that argv specify --v=42.
18*a5b79717SMircea Trofin   bool found = false;
19*a5b79717SMircea Trofin   for (int i = 0; i < argc; ++i) {
20*a5b79717SMircea Trofin     if (strcmp("--v=42", argv[i]) == 0) {
21*a5b79717SMircea Trofin       found = true;
22*a5b79717SMircea Trofin       break;
23*a5b79717SMircea Trofin     }
24*a5b79717SMircea Trofin   }
25*a5b79717SMircea Trofin   if (!found) {
26*a5b79717SMircea Trofin     std::cerr << "This test requires '--v=42' to be passed as a command-line "
27*a5b79717SMircea Trofin               << "argument.\n";
28*a5b79717SMircea Trofin     return 1;
29*a5b79717SMircea Trofin   }
30*a5b79717SMircea Trofin 
31*a5b79717SMircea Trofin   benchmark::Initialize(&argc, argv);
32*a5b79717SMircea Trofin 
33*a5b79717SMircea Trofin   // Check that the current flag value is reported accurately via the
34*a5b79717SMircea Trofin   // GetBenchmarkVerbosity() function.
35*a5b79717SMircea Trofin   if (flagv != benchmark::GetBenchmarkVerbosity()) {
36*a5b79717SMircea Trofin     std::cerr
37*a5b79717SMircea Trofin         << "Seeing different value for flags. GetBenchmarkVerbosity() returns ["
38*a5b79717SMircea Trofin         << benchmark::GetBenchmarkVerbosity() << "] expected flag=[" << flagv
39*a5b79717SMircea Trofin         << "]\n";
40*a5b79717SMircea Trofin     return 1;
41*a5b79717SMircea Trofin   }
42*a5b79717SMircea Trofin   return 0;
43*a5b79717SMircea Trofin }
44