29 Commits

Author SHA1 Message Date
Mike Aizatsky
fe2b115a25 [sancov] better input parameters validation
Differential Revision: https://reviews.llvm.org/D30370

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296900 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-03 18:22:20 +00:00
Mike Aizatsky
e7be0ad634 [sancov] applying blacklist to covered points too
Differential Revision: https://reviews.llvm.org/D28872

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292468 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-19 03:49:18 +00:00
Mike Aizatsky
fd40c60332 [sancov] hash prefix results in huge merge files, use shorter prefix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290277 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-21 22:09:57 +00:00
Mike Aizatsky
77972972a3 [sancov] skip dead files from computations
Differential Revision: https://reviews.llvm.org/D27863

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290017 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-17 00:11:48 +00:00
Mike Aizatsky
dc72d130bb [sancov] introducing symbolized coverage files (.symcov)
Summary:
Answering any meaningful questions about .sancov files requires
accessing symbol information from the corresponding binary.

This change introduces a separate intermediate data structure and
format: symbolized coverage. It contains all symbol information that
is required to answer common queries:
- merging
- coverd/uncovered files and functions
- line status.

Also removing the html report functionality from sancov: generated
HTML files are too huge, and a different approach is required.
Maintaining this half-working approach in the C++ is painful.

Differential Revision: https://reviews.llvm.org/D24947

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282639 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-28 21:39:28 +00:00
Mike Aizatsky
f514d2f83e [sancov] extracting AArch64 test to a separate file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278754 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-15 22:30:37 +00:00
Mehdi Amini
5ac928f38c Add missing REQUIRES in sancov/print_coverage_pcs.test: it requires aarch64 as well now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278601 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-13 19:44:02 +00:00
Mike Aizatsky
a7eb97f818 [AArch64] Registering default MCInstrAnalysis
Even in this form it is useful: it can detect branch instructions.

https://github.com/google/sanitizers/issues/706

Subscribers: aemerson, rengolin

Differential Revision: https://reviews.llvm.org/D23426

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278560 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-12 20:28:05 +00:00
Mike Aizatsky
f5a4670068 [sancov] test file cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278556 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-12 20:06:32 +00:00
Mike Aizatsky
fd3780bb83 [sancov] MachO indirect symbols support.
Differential Revision: https://reviews.llvm.org/D23338

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278551 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-12 19:25:59 +00:00
Reid Kleckner
de2cc1c7a0 Disable sancov tests failing due to apparent endianness issues
Undoes some of the effect of r278271

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278285 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-10 20:11:35 +00:00
Reid Kleckner
455668a91c [sancov] Port sancov -print-coverage-pcs to COFF
The export table is not considered part of the object file symbol table,
so we have to look through it separately.

Reviewers: kcc

Differential Revision: https://reviews.llvm.org/D23321

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278284 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-10 20:08:19 +00:00
Reid Kleckner
d3396f4e90 [sancov] Run more sancov tests on non-x86-Linux machines
Add the $arch-registered-target features that clang uses to disable
tests that require a registered backend, so that we can run the sancov
tests on Windows. LLVM's lit suite did not appear to have a per-test way
to do this, and I would rather not split up the sancov tests into
architecture directories.

Split out of https://reviews.llvm.org/D23321

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278271 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-10 19:03:18 +00:00
Chandler Carruth
abc56db183 [sancov] Revert r271695 which broke all of the PPC bots.
Original commit message:
[sancov] Run sancov tests on more platforms

The only tests that need to be run on Linux are the ones that use C++
demangling. I'm assuming they will fail on Mac, since __cxa_demangle
there won't handle the non-double-underscore prefixed mangled names.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271763 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-04 03:28:27 +00:00
Reid Kleckner
424a77b353 [sancov] Disable these tests if there is no X86 backend
Copied from test/CodeGen/X86

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271698 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-03 18:07:32 +00:00
Reid Kleckner
411fe519e5 [sancov] Run sancov tests on more platforms
The only tests that need to be run on Linux are the ones that use C++
demangling. I'm assuming they will fail on Mac, since __cxa_demangle
there won't handle the non-double-underscore prefixed mangled names.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271695 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-03 17:51:42 +00:00
Mike Aizatsky
aa724817e4 [sancov] using normalized filenames for blacklist checks.
Differential Revision: http://reviews.llvm.org/D19395

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267078 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-21 23:38:45 +00:00
Mike Aizatsky
b5f62ceff2 [sancov] renaming statistics fields.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264349 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-24 21:49:55 +00:00
Mike Aizatsky
9647ee51e2 [sancov] -print-coverage-stats option to print various coverage statistics.
Differential Revision: http://reviews.llvm.org/D18418

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264222 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-24 00:00:08 +00:00
Mike Aizatsky
b18a07cf76 [sancov] using md5 for anchors in attempt to reduce file size.
Differential Revision: http://reviews.llvm.org/D18102

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263308 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-11 23:28:28 +00:00
Mike Aizatsky
4470c2730c [sancov] print_coverage_points command.
Differential Revision: http://reviews.llvm.org/D17670

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262104 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-27 02:21:44 +00:00
Mike Aizatsky
4c8093a71a [sancov] improved object files handling.
Multi-dso programs result in multiple coverage files dumped of the form
'<module_name>.<pid>.sancov'. When analyzing these coverage files it is
important to use correct corresponding object file.

This change removes the "-obj" sancov flag and lets user specify object
file names alongside coverage files. Sancov tool would match them using
<module_name> part of coverage file and short file name of the object
file.

Corresponding changes:
- compiler-rt: http://reviews.llvm.org/D17171
- docs: http://reviews.llvm.org/D17175

Differential Revision: http://reviews.llvm.org/D17169

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260628 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-12 00:29:07 +00:00
Mike Aizatsky
a8f3371a07 [sancov] html report
Differential Revision: http://reviews.llvm.org/D16161

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257824 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-14 22:34:11 +00:00
Mike Aizatsky
bca907f5fb [sancov] blacklist support.
Summary:
Using the blacklist the user can filter own unwanted functions
from all outputs. By default blacklist contains "fun:__sancov*" line.

Differential Revision: http://reviews.llvm.org/D15364

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255732 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-16 00:31:48 +00:00
Mike Aizatsky
4d585624eb sancov -not-covered-functions.
Summary: The command prints out list of functions that were not entered.
To do this, addresses are first converted to function locations. Set
operations are used for function locations.

Differential Revision: http://reviews.llvm.org/D14889

review

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254742 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-04 18:35:37 +00:00
Mike Aizatsky
e656ca2d31 enabling sancov tests on linux x86_64 only
Differential Revision: http://reviews.llvm.org/D14728

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253354 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 18:25:21 +00:00
Mike Aizatsky
8b07272072 disabling sancov tests: too many failures on different platforms.
Differential Revision: http://reviews.llvm.org/D14624

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252945 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 20:47:12 +00:00
Mike Aizatsky
4192660fd2 sancov tests - platform independent separators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252943 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 20:17:49 +00:00
Mike Aizatsky
91e7b1246c sancov test suite
Differential Revision: http://reviews.llvm.org/D14589

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252933 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 19:34:21 +00:00