mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-14 15:39:06 +00:00
llvm-cov: Actually use the command line arguments when reporting
This code didn't really make sense as is. If a filename is passed in, the user obviously wants the coverage *for that file*, not *for everything*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229217 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9bdb194b86
commit
1ec34b0c61
Binary file not shown.
@ -1,7 +1,21 @@
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -no-colors 2>&1 | FileCheck %s
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -no-colors -filename-equivalence 2>&1 | FileCheck %s
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -no-colors -filename-equivalence report.cpp 2>&1 | FileCheck -check-prefix=FILT-NEXT %s
|
||||
|
||||
// CHECK: Filename Regions Miss Cover Functions Executed
|
||||
// CHECK: TOTAL 5 2 60.00% 4 75.00%
|
||||
// CHECK: Filename Regions Miss Cover Functions Executed
|
||||
// CHECK-NEXT: ---
|
||||
// CHECK-NEXT: report.cpp 5 2 60.00% 4 75.00%
|
||||
// CHECK-NEXT: ---
|
||||
// CHECK-NEXT: TOTAL 5 2 60.00% 4 75.00%
|
||||
|
||||
// FILT: File 'report.cpp':
|
||||
// FILT-NEXT: Name Regions Miss Cover Lines Miss Cover
|
||||
// FILT-NEXT: ---
|
||||
// FILT-NEXT: _Z3foob 2 1 50.00% 4 2 50.00%
|
||||
// FILT-NEXT: _Z3barv 1 0 100.00% 2 0 100.00%
|
||||
// FILT-NEXT: _Z4funcv 1 1 0.00% 2 2 0.00%
|
||||
// FILT-NEXT: main 1 0 100.00% 5 0 100.00%
|
||||
// FILT-NEXT: ---
|
||||
// FILT-NEXT: TOTAL 5 2 60.00% 13 4 69.23%
|
||||
|
||||
void foo(bool cond) {
|
||||
if (cond) {
|
||||
|
@ -324,10 +324,11 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) {
|
||||
|
||||
for (const auto &File : InputSourceFiles) {
|
||||
SmallString<128> Path(File);
|
||||
if (std::error_code EC = sys::fs::make_absolute(Path)) {
|
||||
errs() << "error: " << File << ": " << EC.message();
|
||||
return 1;
|
||||
}
|
||||
if (!CompareFilenamesOnly)
|
||||
if (std::error_code EC = sys::fs::make_absolute(Path)) {
|
||||
errs() << "error: " << File << ": " << EC.message();
|
||||
return 1;
|
||||
}
|
||||
SourceFiles.push_back(Path.str());
|
||||
}
|
||||
return 0;
|
||||
@ -459,12 +460,10 @@ int CodeCoverageTool::report(int argc, const char **argv,
|
||||
return 1;
|
||||
|
||||
CoverageReport Report(ViewOpts, std::move(Coverage));
|
||||
if (SourceFiles.empty() && Filters.empty()) {
|
||||
if (SourceFiles.empty())
|
||||
Report.renderFileReports(llvm::outs());
|
||||
return 0;
|
||||
}
|
||||
|
||||
Report.renderFunctionReports(llvm::outs());
|
||||
else
|
||||
Report.renderFunctionReports(SourceFiles, llvm::outs());
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -155,9 +155,10 @@ void CoverageReport::render(const FunctionCoverageSummary &Function,
|
||||
OS << "\n";
|
||||
}
|
||||
|
||||
void CoverageReport::renderFunctionReports(raw_ostream &OS) {
|
||||
void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
|
||||
raw_ostream &OS) {
|
||||
bool isFirst = true;
|
||||
for (StringRef Filename : Coverage->getUniqueSourceFiles()) {
|
||||
for (StringRef Filename : Files) {
|
||||
if (isFirst)
|
||||
isFirst = false;
|
||||
else
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
std::unique_ptr<coverage::CoverageMapping> Coverage)
|
||||
: Options(Options), Coverage(std::move(Coverage)) {}
|
||||
|
||||
void renderFunctionReports(raw_ostream &OS);
|
||||
void renderFunctionReports(ArrayRef<std::string> Files, raw_ostream &OS);
|
||||
|
||||
void renderFileReports(raw_ostream &OS);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user