[llvm-cov] Add support for exporting coverage data to JSON
authorVedant Kumar <vsk@apple.com>
Tue, 26 Jul 2016 21:35:43 +0000 (21:35 +0000)
committerVedant Kumar <vsk@apple.com>
Tue, 26 Jul 2016 21:35:43 +0000 (21:35 +0000)
commitd5b7436c1fa6b2c406c48fcae8d1cc486c3df6cf
tree33b7187cc4d7f9aa3ba5c6bb3a5c2aa7ef54c8b4
parent219ab361f4a93baf726f9b8786f807e7c7330cea
[llvm-cov] Add support for exporting coverage data to JSON

This enables users to export coverage information as portable JSON for use by
analysis tools and storage in document based databases.

The export sub-command is invoked just like the others:

  llvm-cov export -instr-profile path/to/foo.profdata path/to/foo.binary

The resulting JSON contains a list of files and functions. Every file object
contains a list of segments, expansions, and a summary of the file's region,
function, and line coverage. Every function object contains the function's name
and regions. There is also a total summary for the entire object file.

Patch by Eddie Hurtig!

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

llvm-svn: 276813
17 files changed:
llvm/docs/CommandGuide/llvm-cov.rst
llvm/test/tools/llvm-cov/Inputs/binary-formats.canonical.json [new file with mode: 0644]
llvm/test/tools/llvm-cov/Inputs/highlightedRanges.json [new file with mode: 0644]
llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.json [new file with mode: 0644]
llvm/test/tools/llvm-cov/Inputs/regionMarkers.json [new file with mode: 0644]
llvm/test/tools/llvm-cov/Inputs/showExpansions.json [new file with mode: 0644]
llvm/test/tools/llvm-cov/Inputs/universal-binary.json [new file with mode: 0644]
llvm/test/tools/llvm-cov/binary-formats.c
llvm/test/tools/llvm-cov/showExpansions.cpp
llvm/test/tools/llvm-cov/showHighlightedRanges.cpp
llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp
llvm/test/tools/llvm-cov/showRegionMarkers.cpp
llvm/test/tools/llvm-cov/universal-binary.c
llvm/tools/llvm-cov/CMakeLists.txt
llvm/tools/llvm-cov/CodeCoverage.cpp
llvm/tools/llvm-cov/CoverageExporterJson.cpp [new file with mode: 0644]
llvm/tools/llvm-cov/llvm-cov.cpp