From 782585a2144e2af019bd3e4dc48cab611545645b Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Mon, 29 Jun 2020 18:35:22 -0400 Subject: [PATCH] [FileCheck] Permit multiple -v or -vv `FILECHECK_OPTS` was implemented so that a test runner, such as CI, can specify FileCheck debugging options, such as `-v` and `-vv`. However, if a test suite has a FileCheck call that already specifies `-v` or `-vv`, then that call will fail if `FILECHECK_OPTS` also specifies it. For `-vv`, this problem already exists: `clang/test/CodeGen/aarch64-v8.2a-fp16-intrinsics-constrained.c` It's not yet clear if the `-vv` in that test was intentional, but this usage shouldn't fail anyway. It's already true that FileCheck permits `-vv` and `-v` together even though `-vv` implies `-v`. Compare D70784, which fixed the same problem for `-dump-input`. Reviewed By: jhenderson, thopre Differential Revision: https://reviews.llvm.org/D82601 --- llvm/test/FileCheck/verbose.txt | 16 ++++++++++++++++ llvm/utils/FileCheck/FileCheck.cpp | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/llvm/test/FileCheck/verbose.txt b/llvm/test/FileCheck/verbose.txt index 45123b5..d0532d0 100644 --- a/llvm/test/FileCheck/verbose.txt +++ b/llvm/test/FileCheck/verbose.txt @@ -10,6 +10,22 @@ ; RUN: FileCheck --dump-input=never -vv --input-file %s %s 2>&1 | \ ; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s +; RUN: %ProtectFileCheckOutput \ +; RUN: FileCheck --dump-input=never -v -v --input-file %s %s 2>&1 | \ +; RUN: FileCheck --strict-whitespace --check-prefix V %s + +; RUN: %ProtectFileCheckOutput \ +; RUN: FileCheck --dump-input=never -vv -vv --input-file %s %s 2>&1 | \ +; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s + +; RUN: %ProtectFileCheckOutput \ +; RUN: FileCheck --dump-input=never -v -vv --input-file %s %s 2>&1 | \ +; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s + +; RUN: %ProtectFileCheckOutput \ +; RUN: FileCheck --dump-input=never -vv -v --input-file %s %s 2>&1 | \ +; RUN: FileCheck --strict-whitespace --check-prefixes V,VV %s + ; END. foo diff --git a/llvm/utils/FileCheck/FileCheck.cpp b/llvm/utils/FileCheck/FileCheck.cpp index 52d0fb8..e0037b5 100644 --- a/llvm/utils/FileCheck/FileCheck.cpp +++ b/llvm/utils/FileCheck/FileCheck.cpp @@ -97,12 +97,12 @@ static cl::opt AllowDeprecatedDagOverlap( "non-overlapping CHECK-DAG implementation.\n")); static cl::opt Verbose( - "v", cl::init(false), + "v", cl::init(false), cl::ZeroOrMore, cl::desc("Print directive pattern matches, or add them to the input dump\n" "if enabled.\n")); static cl::opt VerboseVerbose( - "vv", cl::init(false), + "vv", cl::init(false), cl::ZeroOrMore, cl::desc("Print information helpful in diagnosing internal FileCheck\n" "issues, or add it to the input dump if enabled. Implies\n" "-v.\n")); -- 2.7.4