mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-05 18:17:00 +00:00
llvm-cov: Only emit colour by default if the output is a tty
This replaces the -no-color flag with a -color={auto|always|never} option, with auto as the default, which is much saner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232693 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c3fc12d596
commit
cc690d62e3
@ -4,6 +4,6 @@
|
||||
int main(int argc, const char *argv[]) {}
|
||||
|
||||
// RUN: llvm-profdata merge %S/Inputs/binary-formats.proftext -o %t.profdata
|
||||
// RUN: llvm-cov show %S/Inputs/binary-formats.macho32l -instr-profile %t.profdata -no-colors -filename-equivalence %s | FileCheck %s
|
||||
// RUN: llvm-cov show %S/Inputs/binary-formats.macho64l -instr-profile %t.profdata -no-colors -filename-equivalence %s | FileCheck %s
|
||||
// RUN: llvm-cov show %S/Inputs/binary-formats.macho32b -instr-profile %t.profdata -no-colors -filename-equivalence %s | FileCheck %s
|
||||
// RUN: llvm-cov show %S/Inputs/binary-formats.macho32l -instr-profile %t.profdata -filename-equivalence %s | FileCheck %s
|
||||
// RUN: llvm-cov show %S/Inputs/binary-formats.macho64l -instr-profile %t.profdata -filename-equivalence %s | FileCheck %s
|
||||
// RUN: llvm-cov show %S/Inputs/binary-formats.macho32b -instr-profile %t.profdata -filename-equivalence %s | FileCheck %s
|
||||
|
@ -1,5 +1,5 @@
|
||||
// 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
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -filename-equivalence 2>&1 | FileCheck %s
|
||||
// RUN: llvm-cov report %S/Inputs/report.covmapping -instr-profile %S/Inputs/report.profdata -filename-equivalence report.cpp 2>&1 | FileCheck -check-prefix=FILT-NEXT %s
|
||||
|
||||
// CHECK: Filename Regions Miss Cover Functions Executed
|
||||
// CHECK-NEXT: ---
|
||||
|
@ -26,5 +26,5 @@ int main() { // CHECK: 1| [[@LINE]]|int main(
|
||||
// after coverage // WHOLE-FILE: | [[@LINE]]|// after
|
||||
// FILTER-NOT: | [[@LINE-1]]|// after
|
||||
|
||||
// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -no-colors -filename-equivalence %s | FileCheck -check-prefix=CHECK -check-prefix=WHOLE-FILE %s
|
||||
// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -no-colors -filename-equivalence -name=main %s | FileCheck -check-prefix=CHECK -check-prefix=FILTER %s
|
||||
// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -filename-equivalence %s | FileCheck -check-prefix=CHECK -check-prefix=WHOLE-FILE %s
|
||||
// RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -filename-equivalence -name=main %s | FileCheck -check-prefix=CHECK -check-prefix=FILTER %s
|
||||
|
@ -1,5 +1,5 @@
|
||||
// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -no-colors -filename-equivalence %s | FileCheck -check-prefix=CHECK -check-prefix=ALL %s
|
||||
// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -no-colors -filename-equivalence -name=_Z4funcIbEiT_ %s | FileCheck -check-prefix=CHECK -check-prefix=FILTER %s
|
||||
// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence %s | FileCheck -check-prefix=CHECK -check-prefix=ALL %s
|
||||
// RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence -name=_Z4funcIbEiT_ %s | FileCheck -check-prefix=CHECK -check-prefix=FILTER %s
|
||||
|
||||
// before coverage // WHOLE-FILE: | [[@LINE]]|// before
|
||||
// FILTER-NOT: | [[@LINE-1]]|// before
|
||||
|
@ -4,7 +4,7 @@
|
||||
int main(int argc, const char *argv[]) {}
|
||||
|
||||
// RUN: llvm-profdata merge %S/Inputs/universal-binary.proftext -o %t.profdata
|
||||
// RUN: llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -no-colors -filename-equivalence %s -arch x86_64 | FileCheck %s
|
||||
// RUN: llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -filename-equivalence %s -arch x86_64 | FileCheck %s
|
||||
|
||||
// RUN: not llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -no-colors -filename-equivalence %s -arch i386 2>&1 | FileCheck --check-prefix=WRONG-ARCH %s
|
||||
// RUN: not llvm-cov show %S/Inputs/universal-binary -instr-profile %t.profdata -filename-equivalence %s -arch i386 2>&1 | FileCheck --check-prefix=WRONG-ARCH %s
|
||||
// WRONG-ARCH: Failed to load coverage
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "llvm/Support/ManagedStatic.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/PrettyStackTrace.h"
|
||||
#include "llvm/Support/Process.h"
|
||||
#include "llvm/Support/Signals.h"
|
||||
#include <functional>
|
||||
#include <system_error>
|
||||
@ -293,11 +294,24 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) {
|
||||
"greater than the given threshold"),
|
||||
cl::cat(FilteringCategory));
|
||||
|
||||
enum class Colors { Auto, Always, Never };
|
||||
cl::opt<Colors> Color(
|
||||
"color", cl::desc("Configure color output:"),
|
||||
cl::values(clEnumValN(Colors::Auto, "auto",
|
||||
"Enable color if stdout seems to support it"),
|
||||
clEnumValN(Colors::Always, "always", "Enable color"),
|
||||
clEnumValN(Colors::Never, "never", "Disable color"),
|
||||
clEnumValEnd));
|
||||
|
||||
auto commandLineParser = [&, this](int argc, const char **argv) -> int {
|
||||
cl::ParseCommandLineOptions(argc, argv, "LLVM code coverage tool\n");
|
||||
ViewOpts.Debug = DebugDump;
|
||||
CompareFilenamesOnly = FilenameEquivalence;
|
||||
|
||||
ViewOpts.Colors =
|
||||
Color == Colors::Always ||
|
||||
(Color == Colors::Auto && sys::Process::StandardOutHasColors());
|
||||
|
||||
// Create the function filters
|
||||
if (!NameFilters.empty() || !NameRegexFilters.empty()) {
|
||||
auto NameFilterer = new CoverageFilters;
|
||||
@ -388,15 +402,10 @@ int CodeCoverageTool::show(int argc, const char **argv,
|
||||
cl::desc("Show function instantiations"),
|
||||
cl::cat(ViewCategory));
|
||||
|
||||
cl::opt<bool> NoColors("no-colors", cl::Optional,
|
||||
cl::desc("Don't show text colors"), cl::init(false),
|
||||
cl::cat(ViewCategory));
|
||||
|
||||
auto Err = commandLineParser(argc, argv);
|
||||
if (Err)
|
||||
return Err;
|
||||
|
||||
ViewOpts.Colors = !NoColors;
|
||||
ViewOpts.ShowLineNumbers = true;
|
||||
ViewOpts.ShowLineStats = ShowLineExecutionCounts.getNumOccurrences() != 0 ||
|
||||
!ShowRegions || ShowBestLineRegionsCounts;
|
||||
@ -462,15 +471,10 @@ int CodeCoverageTool::show(int argc, const char **argv,
|
||||
|
||||
int CodeCoverageTool::report(int argc, const char **argv,
|
||||
CommandLineParserType commandLineParser) {
|
||||
cl::opt<bool> NoColors("no-colors", cl::Optional,
|
||||
cl::desc("Don't show text colors"), cl::init(false));
|
||||
|
||||
auto Err = commandLineParser(argc, argv);
|
||||
if (Err)
|
||||
return Err;
|
||||
|
||||
ViewOpts.Colors = !NoColors;
|
||||
|
||||
auto Coverage = load();
|
||||
if (!Coverage)
|
||||
return 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user