benchmark/test
Henrique Bucher fbc6efa9b5
Refactoring of PerfCounters infrastructure (#1559)
* Refactoring of PerfCounters infrastructure

The main feature in this pull request is the removal of the static
sharing of PerfCounters and instead creating them at the top
`RunBenchmarks()`  function where all benchmark runners are created. A
single PerfCountersMeasurement object is created and then shared with
all the new BenchmarkRunners objects, one per existing benchmark.

Other features conflated here in this PR are:
- Added BENCHMARK_DONT_OPTIMIZE macro in global scope
- Removal of the `IsValid()` query, being replaced by checking the
  number of remaining counters after validity tests
- Refactoring of all GTests to reflect the changes and new semantics
- extra comments throughout the new code to clarify intent

It was extremely hard to separate all those features in different PRs
as requested since they are so interdependent on each other so I'm just
pushing them altogether and asking for forgiveness.

This PR comes replacing PRs 1555 and 1558 which have been closed.

* Fixed whitespace issue with clang-format

My clang-format insists in deleting this single white space on line 601
while Github's clang format breaks when it is added. I had to disable
format-on-save to check-in this revert change.
I'm using clang 14.0.6.
2023-03-07 10:27:52 +00:00
..
AssemblyTests.cmake Partially revert "Do not depend on unversioned python binary (#1496)" (#1501) 2022-10-13 10:03:29 +01:00
BUILD Allow specifying number of iterations via --benchmark_min_time. (#1525) 2023-02-07 11:45:18 +00:00
CMakeLists.txt Allow specifying number of iterations via --benchmark_min_time. (#1525) 2023-02-07 11:45:18 +00:00
args_product_test.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
basic_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
benchmark_gtest.cc Ensure we don't need benchmark installed to pass c++ feature checks (#1456) 2022-08-04 15:33:35 +01:00
benchmark_min_time_flag_iters_test.cc Removing warnings appearing with C++20 / CLang 15 (#1542) 2023-02-13 11:18:07 +00:00
benchmark_min_time_flag_time_test.cc Removing warnings appearing with C++20 / CLang 15 (#1542) 2023-02-13 11:18:07 +00:00
benchmark_name_gtest.cc Introduce warmup phase to BenchmarkRunner (#1130) (#1399) 2022-05-23 13:50:17 +01:00
benchmark_random_interleaving_gtest.cc Expose default display reporter creation in public API (#1344) 2022-02-11 10:23:05 +00:00
benchmark_setup_teardown_test.cc Fix typos found by codespell (#1519) 2023-01-10 12:25:32 +00:00
benchmark_test.cc get rid of some deprecation warnings from tests 2023-02-06 16:38:53 +00:00
clobber_memory_assembly_test.cc format tests with clang-format (#1282) 2021-11-10 16:22:31 +00:00
commandlineflags_gtest.cc Add `benchmark_context` flag that allows per-run custom context. (#1127) 2021-05-04 14:36:11 +01:00
complexity_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
cxx03_test.cc format tests with clang-format (#1282) 2021-11-10 16:22:31 +00:00
diagnostics_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
display_aggregates_only_test.cc Introduce Coefficient of variation aggregate (#1220) 2021-09-03 18:44:10 +01:00
donotoptimize_assembly_test.cc Fix DoNotOptimize() GCC copy overhead (#1340) (#1410) 2022-06-20 10:12:58 +01:00
donotoptimize_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
filter_test.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
fixture_test.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
internal_threading_test.cc format tests with clang-format (#1282) 2021-11-10 16:22:31 +00:00
link_main_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
map_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
memory_manager_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
min_time_parse_gtest.cc Allow specifying number of iterations via --benchmark_min_time. (#1525) 2023-02-07 11:45:18 +00:00
multiple_ranges_test.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
options_test.cc Bug fix variable 'actual_iterations' set but not used (#1517) 2022-12-19 14:03:11 +00:00
output_test.h clang-tidy: readability-redundant and performance (#1298) 2021-12-06 11:18:04 +00:00
output_test_helper.cc Fix Clang-Tidy warnings readability-else-after-return (#1528) 2023-01-16 12:28:48 +00:00
perf_counters_gtest.cc Refactoring of PerfCounters infrastructure (#1559) 2023-03-07 10:27:52 +00:00
perf_counters_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
register_benchmark_test.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
repetitions_test.cc Statistics: add support for percentage unit in addition to time (#1219) 2021-09-03 15:36:56 +01:00
report_aggregates_only_test.cc Introduce Coefficient of variation aggregate (#1220) 2021-09-03 18:44:10 +01:00
reporter_output_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
skip_with_error_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
spec_arg_test.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
spec_arg_verbosity_test.cc Add option to get the verbosity provided by commandline flag -v (#1330) (#1397) 2022-05-17 17:59:36 +01:00
state_assembly_test.cc Iteration counts should be `uint64_t` globally. (#817) 2019-05-13 12:33:11 +03:00
statistics_gtest.cc Introduce Coefficient of variation aggregate (#1220) 2021-09-03 18:44:10 +01:00
string_util_gtest.cc format tests with clang-format (#1282) 2021-11-10 16:22:31 +00:00
templated_fixture_test.cc format tests with clang-format (#1282) 2021-11-10 16:22:31 +00:00
time_unit_gtest.cc Fix Clang-Tidy warnings related to modernize-use-override (#1523) 2023-01-09 17:52:18 +00:00
user_counters_tabular_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
user_counters_test.cc get rid of warnings in tests (#1562) 2023-03-06 14:47:54 +00:00
user_counters_thousands_test.cc Statistics: add support for percentage unit in addition to time (#1219) 2021-09-03 15:36:56 +01:00