summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-cov] - Add the coverage of lines in the summary report.Ying Yi2016-07-221-4/+24
| | | | | | | | | | The llvm-cov ‘report' command displays a summary of the coverage of a binary file. The summary report currently only includes covered regions and covered functions. This patch adds the coverage of lines in the summary report. Differential Revision: https://reviews.llvm.org/D22569 llvm-svn: 276409
* test commitYing Yi2016-07-221-1/+1
| | | | llvm-svn: 276401
* [llvm-cov] Use relative paths to the stylesheet (for html reports)Vedant Kumar2016-07-212-58/+73
| | | | | | | | | | This makes it easy to swap out the default stylesheet for a custom one. It also shaves ~6.62 MB out of the report directory for a full coverage build of llvm+clang. While we're at it, prune the CSS and add tests for it. llvm-svn: 276359
* [llvm-cov] Re-write a very opaque comment (NFC)Vedant Kumar2016-07-181-1/+1
| | | | llvm-svn: 275843
* [llvm-cov] Place anchors around line numbers in html reportsVedant Kumar2016-07-181-3/+6
| | | | | | Based on a suggestion by Harlan Haskins! llvm-svn: 275840
* [llvm-cov] Clean up error reporting (NFC)Vedant Kumar2016-07-181-47/+25
| | | | | | Use CodeCoverageTool::{error,warning} everywhere. llvm-svn: 275837
* [llvm-cov] Attempt to appease an older builderVedant Kumar2016-07-151-1/+3
| | | | | | | | | | It's using a version of clang which can't (or won't) deduce an implicit conversion from a SmallString to a StringRef. Write the conversion out explicitly: http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-buildserver/builds/8574 llvm-svn: 275647
* [llvm-cov] Attempt to appease Windows botsVedant Kumar2016-07-151-1/+2
| | | | | | | | | They appear to reject r275640 because stdin is held open during an ExecuteAndWait in which it's redirected: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/8390 llvm-svn: 275642
* [llvm-cov] Optionally use a symbol demangler when preparing reportsVedant Kumar2016-07-152-5/+120
| | | | | | | | | | Add an option to specify a symbol demangler (as well as options to the demangler). This can be used to make reports more human-readable. This option is especially useful in -output-dir mode, since it isn't as easy to manually pipe reports into a demangler in this mode. llvm-svn: 275640
* [llvm-cov] Document a few private fields of CodeCoverageTool (NFC)Vedant Kumar2016-07-152-1/+4
| | | | llvm-svn: 275639
* [llvm-cov] Improve error messagesVedant Kumar2016-07-151-4/+4
| | | | | | | While we're at it, extend an existing test to make sure that error messages look reasonable. llvm-svn: 275520
* [llvm-cov] Fix a use-after-freeVedant Kumar2016-07-151-1/+1
| | | | | | | | | | | Taking a lock before appending to a vector does no good unless threads reading from the vector also take the lock, because the vector could be re-sized. I don't have a good isolated test for this. I found the issue with ASan while testing a large project. I'm working on a bot that does this. llvm-svn: 275516
* [llvm-cov] Clean up an awkward capture-by-reference (NFC)Vedant Kumar2016-07-151-2/+2
| | | | | | | | Writing `for (StringRef &SourceFile : ...)` is strange to begin with. Subsequently capturing "SourceFile" by reference is even stranger. Just copy the StringRef, since that's cheap to do. llvm-svn: 275515
* [Coverage] Mark a few more methods const (NFC)Vedant Kumar2016-07-151-11/+11
| | | | llvm-svn: 275514
* [llvm-cov] Use a thread pool to speed up report generation (NFC)Vedant Kumar2016-07-131-24/+75
| | | | | | | | | | | | | | It's safe to print out source coverage views using multiple threads when using the -output-dir mode of the `llvm-cov show` sub-command. While testing this on my development machine, I observed that the speed up is roughly linear with the number of available cores. Avg. time for `llvm-cov show ./llvm-as -show-line-counts-or-regions`: 1 thread: 7.79s user 0.33s system 98% cpu 8.228 total 4 threads: 7.82s user 0.34s system 283% cpu 2.880 total llvm-svn: 275321
* Minor formatting change, NFCVedant Kumar2016-07-061-7/+3
| | | | | | | The rest of llvm-cov does not use LLVM_ATTRIBUTE_UNUSED. Leave unused params unnamed to be consistent. llvm-svn: 274694
* [llvm-cov] Add support for creating html reportsVedant Kumar2016-07-066-1/+538
| | | | | | | | Based on a patch by Harlan Haskins! Differential Revision: http://reviews.llvm.org/D18278 llvm-svn: 274688
* [llvm-cov] Use relative paths to file reports in -output-dir modeVedant Kumar2016-06-292-5/+11
| | | | | | This makes it possible to e.g copy a report to another filesystem. llvm-svn: 274173
* Use LLVM_ATTRIBUTE_UNUSED instead of void casts; NFCVedant Kumar2016-06-291-7/+7
| | | | llvm-svn: 274139
* [llvm-cov] Do not allow ".." to escape the coverage sub-directoryVedant Kumar2016-06-291-2/+3
| | | | | | | | | | | In -output-dir mode, file reports are placed into a "coverage" directory. If filenames in the coverage mapping contain "..", they might escape out of this directory. Fix the problem by removing ".." from source filenames (expand the path component). llvm-svn: 274135
* [llvm-cov] Minor cleanups to prepare for the html format patchVedant Kumar2016-06-295-31/+77
| | | | | | | | | | | | - Add renderView{Header,Footer}, renderLineSuffix, and hasSubViews to support creating tables with nested views. - Move the 'Format' cl::opt to make it easier to extend. - Just create one function view file, instead of overwriting the same file for every new function. Add a regression test for this. llvm-svn: 274086
* Fix "not all control paths return a value" warning on MSVCSimon Pilgrim2016-06-281-0/+1
| | | | llvm-svn: 274065
* [llvm-cov] Create an index of reports in -output-dir modeVedant Kumar2016-06-285-93/+151
| | | | | | | | | | This index lists the reports available in the 'coverage' sub-directory. This will help navigate coverage output from large projects. This commit factors the file creation code out of SourceCoverageView and into CoveragePrinter. llvm-svn: 274029
* [llvm-cov] Minor cleanups (NFC)Vedant Kumar2016-06-281-2/+2
| | | | | | | | - Test the '-o' alias for -output-dir. - Use a helper method in a conditional. - Add a period. llvm-svn: 274028
* [llvm-cov] Avoid copying file paths multiple times (NFC)Vedant Kumar2016-06-283-4/+15
| | | | llvm-svn: 274027
* [llvm-cov] Rename ShowFormat to Format (NFC)Vedant Kumar2016-06-283-4/+4
| | | | | | | This makes it a bit more generic, in case we want to emit summary reports in different formats in the future. llvm-svn: 274026
* [llvm-cov] Move a check into a helper method (NFC)Vedant Kumar2016-06-282-1/+4
| | | | llvm-svn: 274025
* Fix "not all control paths return a value" warning on MSVCSimon Pilgrim2016-06-281-0/+1
| | | | llvm-svn: 274011
* [llvm-cov] Simplify; NFCVedant Kumar2016-06-281-4/+2
| | | | llvm-svn: 273988
* Reapply "[llvm-cov] Add an -output-dir option for the show sub-command""Vedant Kumar2016-06-286-6/+124
| | | | | | | | | | | | | | | Passing -output-dir path/to/dir to llvm-cov show creates path/to/dir if it doesn't already exist, and prints reports into that directory. In function view mode, all views are written into path/to/dir/functions.$EXTENSION. In file view mode, all views are written into path/to/dir/coverage/$PATH.$EXTENSION. Changes since the initial commit: - Avoid accidentally closing stdout twice. llvm-svn: 273985
* Revert "[llvm-cov] Add an -output-dir option for the show sub-command"Vedant Kumar2016-06-286-116/+6
| | | | | | | This reverts commit r273971. test/profile/instrprof-visibility.cpp is failing because of an uncaught error in SafelyCloseFileDescriptor. llvm-svn: 273978
* [llvm-cov] Add an -output-dir option for the show sub-commandVedant Kumar2016-06-286-6/+116
| | | | | | | | | | | Passing -output-dir path/to/dir to llvm-cov show creates path/to/dir if it doesn't already exist, and prints reports into that directory. In function view mode, all views are written into path/to/dir/functions.$EXTENSION. In file view mode, all views are written into path/to/dir/coverage/$PATH.$EXTENSION. llvm-svn: 273971
* [llvm-cov] clang-format a line, NFCVedant Kumar2016-06-281-1/+2
| | | | llvm-svn: 273969
* [llvm-cov] Add a format option for the 'show' sub-command (mostly NFC)Vedant Kumar2016-06-283-2/+18
| | | | llvm-svn: 273968
* [llvm-cov] Simplify the way expansion views are rendered (NFC)Vedant Kumar2016-06-264-35/+38
| | | | | | | | | If a sub-view has already been rendered, it's helpful to re-render the expansion site before rendering the next expansion view. Make this fact explicit in the rendering interface, instead of hiding it behind an awkward Optional<LineRef> parameter. llvm-svn: 273789
* [llvm-cov] Make an API more consistent, NFCVedant Kumar2016-06-254-12/+14
| | | | | | | Make renderExpansionView() look a bit more like renderLine(), and clarify its doxygen comment. llvm-svn: 273773
* [llvm-cov] Flesh out some doxygen comments, NFCVedant Kumar2016-06-254-16/+20
| | | | llvm-svn: 273772
* Try to fix the MSVC buildVedant Kumar2016-06-251-2/+2
| | | | | | | | | There's some kind of issue with using "constexpr unsigned" in an anonymous namespace. http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/13395 llvm-svn: 273770
* [llvm-cov] Separate presentation logic from formatting logic, NFCVedant Kumar2016-06-256-201/+363
| | | | | | | | | | This makes it easier to add renderers for new kinds of output formats. - Define and document a pure-virtual coverage rendering interface. - Move the text-based rendering logic into its a new file. - Re-work the API to better reflect the presentation/formatting split. llvm-svn: 273767
* [llvm-cov] Fix two warningsVedant Kumar2016-06-241-5/+5
| | | | | | | | | They were using output streams inconsistently. One also had a grammar bug. I noticed these while trying to pare down D18278. llvm-svn: 273642
* [llvm-cov] Use getOptions() instead of Options in SourceCoverageView, NFCVedant Kumar2016-06-241-14/+16
| | | | | | | A lot of this code is going to move into the text-based coverage renderer, and won't be able to use Options directly. Use the getter. llvm-svn: 273635
* [llvm-cov] Add SourceNames to SourceCoverageViews, NFCVedant Kumar2016-06-243-16/+37
| | | | | | | | | | | | | A SourceName can be a file or a function. It makes sense to attach this information to a SourceCoverageView, seeing as views (1) already point to the text corresponding to the relevant source code and (2) are already used to render that text along with the SourceNames. This is a nice cleanup which is independent of the upcoming html patch. While we're at it, document the fields in SourceCoverageView. llvm-svn: 273634
* [llvm-cov] Rename SourceCoverageView::LineCoverageInfo to LineCoverageStats, NFCVedant Kumar2016-06-242-25/+25
| | | | | | | | | | | | Pull LineCoverageInfo out of SourceCoverageView and rename it so that it doesn't conflict with another class of the same name in CoverageSummaryInfo.h. This cuts down on the amount of code we have to move into a `protected` section of SourceCoverageView for the upcoming html patch. It also makes the code a bit clearer: having two LineCoverageInfo's is strange. llvm-svn: 273633
* NFC, add an "end namespace" comment for consistencyVedant Kumar2016-06-231-1/+2
| | | | llvm-svn: 273577
* Search for llvm-symbolizer binary in the same directory as argv[0], beforeRichard Smith2016-06-094-23/+8
| | | | | | | looking for it along $PATH. This allows installs of LLVM tools outside of $PATH to find the symbolizer and produce pretty backtraces if they crash. llvm-svn: 272232
* Apply most suggestions of clang-tidy's performance-unnecessary-value-paramBenjamin Kramer2016-06-081-1/+1
| | | | | | | Avoids unnecessary copies. All changes audited & pass tests with asan. No functional change intended. llvm-svn: 272190
* [llvm-cov] Use string getters (NFC)Vedant Kumar2016-06-021-2/+3
| | | | llvm-svn: 271537
* Retry^3 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-191-3/+2
| | | | | | | | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. - Remove the base ProfError class to work around an MSVC ICE. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 270020
* [Coverage] Ensure that coverage mapping data has an expected alignment in ↵Igor Kudrin2016-05-181-1/+5
| | | | | | | | | | | | | 'covmapping' files. Coverage mapping data is organized in a sequence of blocks, each of which is expected to be aligned by 8 bytes. This feature is used when reading those blocks, see VersionedCovMapFuncRecordReader::readFunctionRecords(). If a misaligned covearge mapping data has more than one block, it causes llvm-cov to fail. Differential Revision: http://reviews.llvm.org/D20285 llvm-svn: 269887
* Revert "Retry^2 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""Vedant Kumar2016-05-161-2/+3
| | | | | | | | This reverts commit r269694. MSVC says: error C2086: 'char llvm::ProfErrorInfoBase<enum llvm::instrprof_error>::ID' : redefinition llvm-svn: 269700
OpenPOWER on IntegriCloud