mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
e22de321ce
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. Changes since the initial commit (r276813): - Fixed the regexes in the tests to handle Windows filepaths. Patch by Eddie Hurtig! Differential Revision: https://reviews.llvm.org/D22651 llvm-svn: 276818
28 lines
979 B
C++
28 lines
979 B
C++
// RUN: llvm-cov show %S/Inputs/showExpansions.covmapping -instr-profile %S/Inputs/showExpansions.profdata -dump -show-expansions -filename-equivalence %s 2>&1 | FileCheck %s
|
|
|
|
#define DO_SOMETHING_ELSE() \
|
|
do { \
|
|
} while (0)
|
|
#define ANOTHER_THING() \
|
|
do { \
|
|
if (0) { \
|
|
} \
|
|
} while (0)
|
|
|
|
#define DO_SOMETHING(x) \
|
|
do { \
|
|
if (x) \
|
|
DO_SOMETHING_ELSE(); \
|
|
else \
|
|
ANOTHER_THING(); \
|
|
} while (0)
|
|
// CHECK-DAG: Expansion at line [[@LINE-4]], 7 -> 24
|
|
// CHECK-DAG: Expansion at line [[@LINE-3]], 7 -> 20
|
|
|
|
int main(int argc, const char *argv[]) {
|
|
for (int i = 0; i < 100; ++i)
|
|
DO_SOMETHING(i); // CHECK-DAG: Expansion at line [[@LINE]], 5 -> 17
|
|
return 0;
|
|
}
|
|
// RUN: llvm-cov export %S/Inputs/showExpansions.covmapping -instr-profile %S/Inputs/showExpansions.profdata 2>&1 | FileCheck %S/Inputs/showExpansions.json
|