diff options
author | Vedant Kumar <vsk@apple.com> | 2016-07-26 21:35:43 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2016-07-26 21:35:43 +0000 |
commit | d5b7436c1fa6b2c406c48fcae8d1cc486c3df6cf (patch) | |
tree | 33b7187cc4d7f9aa3ba5c6bb3a5c2aa7ef54c8b4 /llvm/tools/llvm-cov/llvm-cov.cpp | |
parent | 219ab361f4a93baf726f9b8786f807e7c7330cea (diff) | |
download | bcm5719-llvm-d5b7436c1fa6b2c406c48fcae8d1cc486c3df6cf.tar.gz bcm5719-llvm-d5b7436c1fa6b2c406c48fcae8d1cc486c3df6cf.zip |
[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
Diffstat (limited to 'llvm/tools/llvm-cov/llvm-cov.cpp')
-rw-r--r-- | llvm/tools/llvm-cov/llvm-cov.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/tools/llvm-cov/llvm-cov.cpp b/llvm/tools/llvm-cov/llvm-cov.cpp index ba60cd91da9..15841587025 100644 --- a/llvm/tools/llvm-cov/llvm-cov.cpp +++ b/llvm/tools/llvm-cov/llvm-cov.cpp @@ -30,6 +30,9 @@ int showMain(int argc, const char *argv[]); /// \brief The main entry point for the 'report' subcommand. int reportMain(int argc, const char *argv[]); +/// \brief The main entry point for the 'export' subcommand. +int exportMain(int argc, const char *argv[]); + /// \brief The main entry point for the 'convert-for-testing' subcommand. int convertForTestingMain(int argc, const char *argv[]); @@ -38,12 +41,14 @@ int gcovMain(int argc, const char *argv[]); /// \brief Top level help. static int helpMain(int argc, const char *argv[]) { - errs() << "Usage: llvm-cov {gcov|report|show} [OPTION]...\n\n" + errs() << "Usage: llvm-cov {export|gcov|report|show} [OPTION]...\n\n" << "Shows code coverage information.\n\n" << "Subcommands:\n" + << " export: Export instrprof file to structured format.\n" << " gcov: Work with the gcov format.\n" - << " show: Annotate source files using instrprof style coverage.\n" - << " report: Summarize instrprof style coverage information.\n"; + << " report: Summarize instrprof style coverage information.\n" + << " show: Annotate source files using instrprof style coverage.\n"; + return 0; } @@ -68,6 +73,7 @@ int main(int argc, const char **argv) { typedef int (*MainFunction)(int, const char *[]); MainFunction Func = StringSwitch<MainFunction>(argv[1]) .Case("convert-for-testing", convertForTestingMain) + .Case("export", exportMain) .Case("gcov", gcovMain) .Case("report", reportMain) .Case("show", showMain) |