diff options
author | Eric <eric@efcs.ca> | 2018-03-23 16:10:47 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-23 16:10:47 -0600 |
commit | 7b03df7ff76844a39359e9233f31ca8cdb073313 (patch) | |
tree | 136c834c21113b108fbcb07025ae14aa90f364bb /.gitignore | |
parent | df60aeb2667e140a6c6ae93e9e1d8eb3d33d72ab (diff) | |
download | google-benchmark-7b03df7ff76844a39359e9233f31ca8cdb073313.tar.gz |
Add tests to verify assembler output -- Fix DoNotOptimize. (#530)
* 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
Diffstat (limited to '.gitignore')
-rw-r--r-- | .gitignore | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -6,6 +6,7 @@ *.dylib *.cmake !/cmake/*.cmake +!/test/AssemblyTests.cmake *~ *.pyc __pycache__ |