aboutsummaryrefslogtreecommitdiff
path: root/test/spec_arg_verbosity_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/spec_arg_verbosity_test.cc')
-rw-r--r--test/spec_arg_verbosity_test.cc43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/spec_arg_verbosity_test.cc b/test/spec_arg_verbosity_test.cc
new file mode 100644
index 0000000..8f8eb6d
--- /dev/null
+++ b/test/spec_arg_verbosity_test.cc
@@ -0,0 +1,43 @@
+#include <string.h>
+
+#include <iostream>
+
+#include "benchmark/benchmark.h"
+
+// Tests that the user specified verbosity level can be get.
+static void BM_Verbosity(benchmark::State& state) {
+ for (auto _ : state) {
+ }
+}
+BENCHMARK(BM_Verbosity);
+
+int main(int argc, char** argv) {
+ const int32_t flagv = 42;
+
+ // Verify that argv specify --v=42.
+ bool found = false;
+ for (int i = 0; i < argc; ++i) {
+ if (strcmp("--v=42", argv[i]) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ std::cerr << "This test requires '--v=42' to be passed as a command-line "
+ << "argument.\n";
+ return 1;
+ }
+
+ benchmark::Initialize(&argc, argv);
+
+ // Check that the current flag value is reported accurately via the
+ // GetBenchmarkVerbosity() function.
+ if (flagv != benchmark::GetBenchmarkVerbosity()) {
+ std::cerr
+ << "Seeing different value for flags. GetBenchmarkVerbosity() returns ["
+ << benchmark::GetBenchmarkVerbosity() << "] expected flag=[" << flagv
+ << "]\n";
+ return 1;
+ }
+ return 0;
+}