mirror of
https://github.com/google/benchmark.git
synced 2025-03-14 03:10:22 +08:00
* Add tests to verify assembler output -- Fix DoNotOptimize. For things like `DoNotOptimize`, `ClobberMemory`, and even `KeepRunning()`, it is important exactly what assembly they generate. However, we currently have no way to test this. Instead it must be manually validated every time a change occurs -- including a change in compiler version. This patch attempts to introduce a way to test the assembled output automatically. It's mirrors how LLVM verifies compiler output, and it uses LLVM FileCheck to run the tests in a similar way. The tests function by generating the assembly for a test in CMake, and then using FileCheck to verify the // CHECK lines in the source file are found in the generated assembly. Currently, the tests only run on 64-bit x86 systems under GCC and Clang, and when FileCheck is found on the system. Additionally, this patch tries to improve the code gen from DoNotOptimize. This should probably be a separate change, but I needed something to test. * Disable assembly tests on Bazel for now * Link FIXME to github issue * Fix Tests on OS X * fix strip_asm.py to work on both Linux and OS X like targets |
||
---|---|---|
.. | ||
AssemblyTests.cmake | ||
basic_test.cc | ||
benchmark_test.cc | ||
BUILD | ||
clobber_memory_assembly_test.cc | ||
CMakeLists.txt | ||
complexity_test.cc | ||
cxx03_test.cc | ||
diagnostics_test.cc | ||
donotoptimize_assembly_test.cc | ||
donotoptimize_test.cc | ||
filter_test.cc | ||
fixture_test.cc | ||
map_test.cc | ||
multiple_ranges_test.cc | ||
options_test.cc | ||
output_test_helper.cc | ||
output_test.h | ||
register_benchmark_test.cc | ||
reporter_output_test.cc | ||
skip_with_error_test.cc | ||
state_assembly_test.cc | ||
statistics_test.cc | ||
templated_fixture_test.cc | ||
user_counters_tabular_test.cc | ||
user_counters_test.cc |