Index: llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering.proftext
===================================================================
--- llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering.proftext
+++ llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering.proftext
@@ -0,0 +1,32 @@
+main
+# Func Hash:
+0
+# Num Counters:
+1
+# Counter Values:
+1
+
+_Z2f1v
+# Func Hash:
+0
+# Num Counters:
+1
+# Counter Values:
+1
+
+_Z2f2v
+# Func Hash:
+0
+# Num Counters:
+1
+# Counter Values:
+0
+
+_Z2f3v
+# Func Hash:
+0
+# Num Counters:
+1
+# Counter Values:
+0
+
Index: llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering1.cpp
===================================================================
--- llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering1.cpp
+++ llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering1.cpp
@@ -0,0 +1,8 @@
+int f1() {
+ return 1;
+}
+
+int main() {
+ f1();
+ return 0;
+}
Index: llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering2.cpp
===================================================================
--- llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering2.cpp
+++ llvm/trunk/test/tools/llvm-cov/Inputs/dir-with-filtering2.cpp
@@ -0,0 +1,8 @@
+int f2() {
+ return 2;
+}
+
+int f3() {
+ return 3;
+}
+
Index: llvm/trunk/test/tools/llvm-cov/dir-with-filtering.test
===================================================================
--- llvm/trunk/test/tools/llvm-cov/dir-with-filtering.test
+++ llvm/trunk/test/tools/llvm-cov/dir-with-filtering.test
@@ -0,0 +1,69 @@
+RUN: llvm-profdata merge %S/Inputs/dir-with-filtering.proftext -o %t.profdata
+
+// Test TEXT both files
+
+RUN: llvm-cov show %S/Inputs/dir-with-filtering.covmapping -o %t.text -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main -name=f2
+
+RUN: FileCheck -input-file=%t.text/index.txt %s -check-prefix=TEXT-INDEX
+TEXT-INDEX: dir-with-filtering1.cpp 1 0 100.00% 1 0 100.00% 4 0 100.00%
+TEXT-INDEX: dir-with-filtering2.cpp 1 1 0.00% 1 1 0.00% 3 3 0.00%
+
+RUN: FileCheck -input-file=%t.text/coverage/tmp/dir-with-filtering1.cpp.txt %s -check-prefix=TEXT-FILE1
+TEXT-FILE1: Coverage Report
+TEXT-FILE1-NOT: _Z2f1v:
+TEXT-FILE1: main:
+TEXT-FILE1-NEXT: {{.*}}int main()
+TEXT-FILE1-NOT: _Z2f1v:
+
+RUN: FileCheck -input-file=%t.text/coverage/tmp/dir-with-filtering2.cpp.txt %s -check-prefix=TEXT-FILE2
+TEXT-FILE2: Coverage Report
+TEXT-FILE2-NOT: _Z2f3v:
+TEXT-FILE2: _Z2f2v:
+TEXT-FILE2-NEXT: {{.*}}int f2()
+TEXT-FILE2-NOT: _Z2f3v:
+
+// Test TEXT one file
+
+RUN: llvm-cov show %S/Inputs/dir-with-filtering.covmapping -o %t.text_one_file -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main -name=f2 %S/Inputs/dir-with-filtering1.cpp
+
+RUN: FileCheck -input-file=%t.text_one_file/index.txt %s -check-prefix=TEXT-INDEX-ONE-FILE
+TEXT-INDEX-ONE-FILE: dir-with-filtering1.cpp 1 0 100.00% 1 0 100.00% 4 0 100.00%
+TEXT-INDEX-ONE-FILE-NOT: dir-with-filtering2.cpp
+
+RUN: FileCheck -input-file=%t.text_one_file/coverage/tmp/dir-with-filtering1.cpp.txt %s -check-prefix=TEXT-FILE1
+
+// Test HTML both files
+
+RUN: llvm-profdata merge %S/Inputs/dir-with-filtering.proftext -o %t.profdata
+RUN: llvm-cov show %S/Inputs/dir-with-filtering.covmapping -format html -o %t.html -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main -name=f2
+
+RUN: FileCheck -input-file=%t.html/index.html %s -check-prefix=HTML-INDEX
+HTML-INDEX:
Coverage Report
+HTML-INDEX: dir-with-filtering1.cpp{{.*}}100.00% (1/1){{.*}}100.00% (4/4){{.*}}100.00% (1/1)
+HTML-INDEX: dir-with-filtering2.cpp{{.*}}0.00% (0/1){{.*}}0.00% (0/3){{.*}}0.00% (0/1)
+
+RUN: FileCheck -input-file=%t.html/coverage/tmp/dir-with-filtering1.cpp.html %s -check-prefix=HTML-FILE1
+HTML-FILE1-NOT: f1
+HTML-FILE1: main
+HTML-FILE1-NOT: f1
+HTML-FILE1: int main()
+HTML-FILE1-NOT: f1
+
+RUN: FileCheck -input-file=%t.html/coverage/tmp/dir-with-filtering2.cpp.html %s -check-prefix=HTML-FILE2
+HTML-FILE2-NOT: f3
+HTML-FILE2: _Z2f2v
+HTML-FILE2-NOT: f3
+HTML-FILE2: int f2()
+HTML-FILE2-NOT: f3
+
+// Test HTML one file
+
+RUN: llvm-profdata merge %S/Inputs/dir-with-filtering.proftext -o %t.profdata
+RUN: llvm-cov show %S/Inputs/dir-with-filtering.covmapping -format html -o %t.html_one_file -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main -name=f2 %S/Inputs/dir-with-filtering1.cpp
+
+RUN: FileCheck -input-file=%t.html_one_file/index.html %s -check-prefix=HTML-INDEX-ONE-FILE
+HTML-INDEX-ONE-FILE: Coverage Report
+HTML-INDEX-ONE-FILE: dir-with-filtering1.cpp{{.*}}100.00% (1/1){{.*}}100.00% (4/4){{.*}}100.00% (1/1)
+HTML-INDEX-ONE-FILE-NOT: dir-with-filtering2.cpp
+
+RUN: FileCheck -input-file=%t.html_one_file/coverage/tmp/dir-with-filtering1.cpp.html %s -check-prefix=HTML-FILE1
Index: llvm/trunk/test/tools/llvm-cov/showLineExecutionCounts.cpp
===================================================================
--- llvm/trunk/test/tools/llvm-cov/showLineExecutionCounts.cpp
+++ llvm/trunk/test/tools/llvm-cov/showLineExecutionCounts.cpp
@@ -31,9 +31,9 @@
// Test -output-dir.
// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -o %t.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S %s
-// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -output-dir %t.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S -name=main %s
+// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -output-dir %t.filtered.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S -name=main %s
// RUN: FileCheck -check-prefixes=TEXT,WHOLE-FILE -input-file %t.dir/coverage/tmp/showLineExecutionCounts.cpp.txt %s
-// RUN: FileCheck -check-prefixes=TEXT,FILTER -input-file %t.dir/functions.txt %s
+// RUN: FileCheck -check-prefixes=TEXT,FILTER -input-file %t.filtered.dir/coverage/tmp/showLineExecutionCounts.cpp.txt %s
//
// RUN: llvm-cov export %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -name=main 2>/dev/null > %t.export.json
// RUN: FileCheck -input-file %t.export.json %S/Inputs/lineExecutionCounts.json
@@ -41,9 +41,9 @@
//
// Test html output.
// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -format html -o %t.html.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S %s
-// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -format html -o %t.html.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S -name=main %s
+// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -format html -o %t.html.filtered.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S -name=main %s
// RUN: FileCheck -check-prefixes=HTML,HTML-WHOLE-FILE -input-file %t.html.dir/coverage/tmp/showLineExecutionCounts.cpp.html %s
-// RUN: FileCheck -check-prefixes=HTML,HTML-FILTER -input-file %t.html.dir/functions.html %s
+// RUN: FileCheck -check-prefixes=HTML,HTML-FILTER -input-file %t.html.filtered.dir/coverage/tmp/showLineExecutionCounts.cpp.html %s
//
// HTML-WHOLE-FILE: [[@LINE-44]] | | // before
// HTML-FILTER-NOT: [[@LINE-45]] | | // before
Index: llvm/trunk/test/tools/llvm-cov/showTemplateInstantiations.cpp
===================================================================
--- llvm/trunk/test/tools/llvm-cov/showTemplateInstantiations.cpp
+++ llvm/trunk/test/tools/llvm-cov/showTemplateInstantiations.cpp
@@ -41,9 +41,9 @@
// Test html output.
// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S %s -format html -o %t.html.dir
-// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S -name=_Z4funcIbEiT_ %s -format html -o %t.html.dir
+// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S -name=_Z4funcIbEiT_ %s -format html -o %t.html.filtered.dir
// RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-ALL -input-file=%t.html.dir/coverage/tmp/showTemplateInstantiations.cpp.html %s
-// RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-FILTER -input-file=%t.html.dir/functions.html %s
+// RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-FILTER -input-file=%t.html.filtered.dir/coverage/tmp/showTemplateInstantiations.cpp.html %s
// HTML-ALL: [[@LINE-44]] | | // before
// HTML-FILTER-NOT: [[@LINE-45]] | | // before
Index: llvm/trunk/test/tools/llvm-cov/style.test
===================================================================
--- llvm/trunk/test/tools/llvm-cov/style.test
+++ llvm/trunk/test/tools/llvm-cov/style.test
@@ -1,14 +1,17 @@
RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S %S/showTemplateInstantiations.cpp -format html -o %t.dir
-RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S -name=_Z4funcIbEiT_ %S/showTemplateInstantiations.cpp -format html -o %t.dir
+RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S -name=_Z4funcIbEiT_ %S/showTemplateInstantiations.cpp -format html -o %t.filtered.dir
RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -path-equivalence=/tmp,%S %S/showTemplateInstantiations.cpp -format html | FileCheck %s -check-prefix=NODIR
RUN: FileCheck %s -input-file=%t.dir/style.css -check-prefix=STYLE
-RUN: FileCheck %s -input-file=%t.dir/functions.html -check-prefix=TOPLEVEL
RUN: FileCheck %s -input-file=%t.dir/index.html -check-prefix=TOPLEVEL
RUN: FileCheck %s -input-file=%t.dir/coverage/tmp/showTemplateInstantiations.cpp.html -check-prefix=FILEVIEW
+RUN: FileCheck %s -input-file=%t.filtered.dir/style.css -check-prefix=STYLE
+RUN: FileCheck %s -input-file=%t.filtered.dir/index.html -check-prefix=TOPLEVEL
+RUN: FileCheck %s -input-file=%t.filtered.dir/coverage/tmp/showTemplateInstantiations.cpp.html -check-prefix=FILEVIEW
+
STYLE-DAG: .red
STYLE-DAG: .cyan
STYLE-DAG: .source-name-title
Index: llvm/trunk/tools/llvm-cov/CodeCoverage.cpp
===================================================================
--- llvm/trunk/tools/llvm-cov/CodeCoverage.cpp
+++ llvm/trunk/tools/llvm-cov/CodeCoverage.cpp
@@ -35,7 +35,9 @@
#include "llvm/Support/Threading.h"
#include "llvm/Support/ThreadPool.h"
#include "llvm/Support/ToolOutputFile.h"
+
#include
+#include | | | |