Compiler projects using llvm
// RUN: llvm-profdata merge %S/Inputs/multiple-files.proftext -o %t.profdata
// RUN: llvm-cov report %S/Inputs/multiple-files.covmapping -instr-profile %t.profdata | FileCheck %s -check-prefix=MANY_COMPONENTS
// RUN: llvm-cov report %S/Inputs/multiple-files2.covmapping -instr-profile %t.profdata | FileCheck %s -check-prefix=ONE_COMPONENT
// RUN: llvm-cov export %S/Inputs/multiple-files.covmapping -instr-profile %t.profdata -format=lcov | FileCheck %s -check-prefix=LCOV

// MANY_COMPONENTS: Filename
// MANY_COMPONENTS-NEXT: ---
// MANY_COMPONENTS-NEXT: {{^}}a{{[/\\]}}f2.c
// MANY_COMPONENTS-NEXT: {{^}}b{{[/\\]}}c{{[/\\]}}f4.c
// MANY_COMPONENTS-NEXT: {{^}}b{{[/\\]}}f3.c
// MANY_COMPONENTS-NEXT: {{^}}f1.c

// ONE_COMPONENT: Filename
// ONE_COMPONENT-NEXT: ---
// ONE_COMPONENT-NEXT: {{^}}cov.c
// ONE_COMPONENT-NEXT: {{^}}cov.h

// LCOV-LABEL: SF:{{.*}}a{{[/\\]}}f2.c
// LCOV: FN:1,f2
// No extra funcs
// LCOV-NOT: FN:
// LCOV-LABEL: SF:{{.*}}b{{[/\\]}}c{{[/\\]}}f4.c
// LCOV: FN:1,f4
// LCOV-LABEL: SF:{{.*}}b{{[/\\]}}f3.c
// LCOV: FN:1,f3
// LCOV-LABEL: SF:{{.*}}f1.c
// LCOV: FN:1,f1