diff options
53 files changed, 165 insertions, 104 deletions
diff --git a/clang-tools-extra/test/clang-tidy/arg-comments.cpp b/clang-tools-extra/test/clang-tidy/arg-comments.cpp index 02dc83bb635..93fcb121543 100644 --- a/clang-tools-extra/test/clang-tidy/arg-comments.cpp +++ b/clang-tools-extra/test/clang-tidy/arg-comments.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-argument-comment %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-argument-comment %t // FIXME: clang-tidy should provide a -verify mode to make writing these checks // easier and more accurate. diff --git a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py new file mode 100755 index 00000000000..5113489b14a --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py @@ -0,0 +1,113 @@ +#!/usr/bin/python +# +#===- check_clang_tidy.py - ClangTidy Test Helper ------------*- python -*--===# +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +#===------------------------------------------------------------------------===# + +r""" +ClangTidy Test Helper +===================== + +This script runs clang-tidy in fix mode and verify fixes, messages or both. + +Usage: + check_clang_tidy.py <source-file> <check-name> <temp-file> \ + [optional clang-tidy arguments] + +Example: + // RUN: %python %S/check_clang_tidy.py %s llvm-include-order %t -- -isystem $(dirname %s)/Inputs/Headers +""" + +import re +import subprocess +import sys + + +def write_file(file_name, text): + with open(file_name, 'w') as f: + f.write(text) + f.truncate() + +def main(): + if len(sys.argv) < 4: + sys.exit('Not enough arguments.') + + input_file_name = sys.argv[1] + check_name = sys.argv[2] + temp_file_name = sys.argv[3] + '.cpp' + + clang_tidy_extra_args = sys.argv[4:] + if len(clang_tidy_extra_args) == 0: + clang_tidy_extra_args = ['--', '--std=c++11'] + + with open(input_file_name, 'r') as input_file: + input_text = input_file.read() + + has_check_fixes = input_text.find('CHECK-FIXES') >= 0 + has_check_messages = input_text.find('CHECK-MESSAGES') >= 0 + + if not has_check_fixes and not has_check_messages: + sys.exit('Neither CHECK-FIXES nor CHECK-MESSAGES found in the input') + + # Remove the contents of the CHECK lines to avoid CHECKs matching on + # themselves. We need to keep the comments to preserve line numbers while + # avoiding empty lines which could potentially trigger formatting-related + # checks. + cleaned_test = re.sub('// *CHECK-[A-Z-]*:[^\r\n]*', '//', input_text) + + write_file(temp_file_name, cleaned_test) + + original_file_name = temp_file_name + ".orig" + write_file(original_file_name, cleaned_test) + + args = ['clang-tidy', temp_file_name, '-fix', '--checks=-*,' + check_name] + \ + clang_tidy_extra_args + print('Running ' + repr(args) + '...') + clang_tidy_output = \ + subprocess.check_output(args, stderr=subprocess.STDOUT).decode() + + print('------------------------ clang-tidy output -----------------------\n' + + clang_tidy_output + + '\n------------------------------------------------------------------') + + try: + diff_output = subprocess.check_output( + ['diff', '-u', original_file_name, temp_file_name], + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + diff_output = e.output + + print('------------------------------ Fixes -----------------------------\n' + + diff_output.decode() + + '\n------------------------------------------------------------------') + + if has_check_fixes: + try: + subprocess.check_output( + ['FileCheck', '-input-file=' + temp_file_name, input_file_name, + '-check-prefix=CHECK-FIXES', '-strict-whitespace'], + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + print('FileCheck failed:\n' + e.output) + raise + + if has_check_messages: + messages_file = temp_file_name + '.msg' + write_file(messages_file, clang_tidy_output) + try: + subprocess.check_output( + ['FileCheck', '-input-file=' + messages_file, input_file_name, + '-check-prefix=CHECK-MESSAGES', + '-implicit-check-not={{warning|error}}:'], + stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + print('FileCheck failed:\n' + e.output) + raise + +if __name__ == '__main__': + main() diff --git a/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp b/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp index a865733da62..0bc7040c516 100644 --- a/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp +++ b/clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-explicit-constructor %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-explicit-constructor %t namespace std { typedef decltype(sizeof(int)) size_t; diff --git a/clang-tools-extra/test/clang-tidy/google-explicit-make-pair.cpp b/clang-tools-extra/test/clang-tidy/google-explicit-make-pair.cpp index c8256c33fe4..ac51ce6ef14 100644 --- a/clang-tools-extra/test/clang-tidy/google-explicit-make-pair.cpp +++ b/clang-tools-extra/test/clang-tidy/google-explicit-make-pair.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-build-explicit-make-pair %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-build-explicit-make-pair %t namespace std { template <class T1, class T2> diff --git a/clang-tools-extra/test/clang-tidy/google-member-string-references.cpp b/clang-tools-extra/test/clang-tidy/google-member-string-references.cpp index 6ce05cbcbe5..09146456df4 100644 --- a/clang-tools-extra/test/clang-tidy/google-member-string-references.cpp +++ b/clang-tools-extra/test/clang-tidy/google-member-string-references.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-runtime-member-string-references %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-runtime-member-string-references %t namespace std { template<typename T> diff --git a/clang-tools-extra/test/clang-tidy/google-memset-zero-length.cpp b/clang-tools-extra/test/clang-tidy/google-memset-zero-length.cpp index 95d0d236709..88c38e6f945 100644 --- a/clang-tools-extra/test/clang-tidy/google-memset-zero-length.cpp +++ b/clang-tools-extra/test/clang-tidy/google-memset-zero-length.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-runtime-memset %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-runtime-memset %t void *memset(void *, int, __SIZE_TYPE__); diff --git a/clang-tools-extra/test/clang-tidy/google-overloaded-unary-and.cpp b/clang-tools-extra/test/clang-tidy/google-overloaded-unary-and.cpp index 3871330be02..ab1312f55ee 100644 --- a/clang-tools-extra/test/clang-tidy/google-overloaded-unary-and.cpp +++ b/clang-tools-extra/test/clang-tidy/google-overloaded-unary-and.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-runtime-operator %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-runtime-operator %t struct Foo { void *operator&(); diff --git a/clang-tools-extra/test/clang-tidy/google-readability-casting.c b/clang-tools-extra/test/clang-tidy/google-readability-casting.c index 8237576072b..b195667b6dd 100644 --- a/clang-tools-extra/test/clang-tidy/google-readability-casting.c +++ b/clang-tools-extra/test/clang-tidy/google-readability-casting.c @@ -1,10 +1,9 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-readability-casting %t -- -x c +// RUN: %python %S/check_clang_tidy.py %s google-readability-casting %t -- -x c // The testing script always adds .cpp extension to the input file name, so we // need to run clang-tidy directly in order to verify handling of .c files: // RUN: clang-tidy --checks=-*,google-readability-casting %s -- -x c++ | FileCheck %s -check-prefix=CHECK-MESSAGES -implicit-check-not='{{warning|error}}:' // RUN: cp %s %t.main_file.cpp // RUN: clang-tidy --checks=-*,google-readability-casting -header-filter='.*' %t.main_file.cpp -- -I%S -DTEST_INCLUDE -x c++ | FileCheck %s -check-prefix=CHECK-MESSAGES -implicit-check-not='{{warning|error}}:' -// REQUIRES: shell #ifdef TEST_INCLUDE diff --git a/clang-tools-extra/test/clang-tidy/google-readability-casting.cpp b/clang-tools-extra/test/clang-tidy/google-readability-casting.cpp index a8c1989a599..50c3cb75ad1 100644 --- a/clang-tools-extra/test/clang-tidy/google-readability-casting.cpp +++ b/clang-tools-extra/test/clang-tidy/google-readability-casting.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-readability-casting %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-readability-casting %t bool g() { return false; } diff --git a/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp b/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp index 0815edcf96e..ab5391b3cce 100644 --- a/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp +++ b/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-readability-namespace-comments %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-readability-namespace-comments %t namespace n1 { namespace n2 { diff --git a/clang-tools-extra/test/clang-tidy/google-readability-todo.cpp b/clang-tools-extra/test/clang-tidy/google-readability-todo.cpp index 9f4e3a863e1..d2e3b6c2cc3 100644 --- a/clang-tools-extra/test/clang-tidy/google-readability-todo.cpp +++ b/clang-tools-extra/test/clang-tidy/google-readability-todo.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-readability-todo %t -config="{User: 'some user'}" -- -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-readability-todo %t -config="{User: 'some user'}" -- // TODOfix this1 // CHECK-MESSAGES: [[@LINE-1]]:1: warning: missing username/bug in TODO diff --git a/clang-tools-extra/test/clang-tidy/google-runtime-int.cpp b/clang-tools-extra/test/clang-tidy/google-runtime-int.cpp index 3a344b8097a..53bdefda0e2 100644 --- a/clang-tools-extra/test/clang-tidy/google-runtime-int.cpp +++ b/clang-tools-extra/test/clang-tidy/google-runtime-int.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s google-runtime-int %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s google-runtime-int %t long a(); // CHECK-MESSAGES: [[@LINE-1]]:1: warning: consider replacing 'long' with 'int{{..}}' diff --git a/clang-tools-extra/test/clang-tidy/llvm-include-order.cpp b/clang-tools-extra/test/clang-tidy/llvm-include-order.cpp index 8c6f178fe96..5d978172022 100644 --- a/clang-tools-extra/test/clang-tidy/llvm-include-order.cpp +++ b/clang-tools-extra/test/clang-tidy/llvm-include-order.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s llvm-include-order %t -- -isystem %S/Inputs/Headers -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s llvm-include-order %t -- -isystem %S/Inputs/Headers // FIXME: Investigating. // XFAIL: win32 diff --git a/clang-tools-extra/test/clang-tidy/llvm-twine-local.cpp b/clang-tools-extra/test/clang-tidy/llvm-twine-local.cpp index e388eeab3f3..a57110954ae 100644 --- a/clang-tools-extra/test/clang-tidy/llvm-twine-local.cpp +++ b/clang-tools-extra/test/clang-tidy/llvm-twine-local.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s llvm-twine-local %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s llvm-twine-local %t namespace llvm { class Twine { diff --git a/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp b/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp index b2454191128..fd70e861c4b 100644 --- a/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-assert-side-effect %t -config="{CheckOptions: [{key: misc-assert-side-effect.CheckFunctionCalls, value: 1}, {key: misc-assert-side-effect.AssertMacros, value: 'assert,assert2,my_assert'}]}" -- -fexceptions -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-assert-side-effect %t -config="{CheckOptions: [{key: misc-assert-side-effect.CheckFunctionCalls, value: 1}, {key: misc-assert-side-effect.AssertMacros, value: 'assert,assert2,my_assert'}]}" -- -fexceptions //===--- assert definition block ------------------------------------------===// int abort() { return 0; } diff --git a/clang-tools-extra/test/clang-tidy/misc-assign-operator-signature.cpp b/clang-tools-extra/test/clang-tidy/misc-assign-operator-signature.cpp index bdeca538954..6d8f98fefd1 100644 --- a/clang-tools-extra/test/clang-tidy/misc-assign-operator-signature.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-assign-operator-signature.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-assign-operator-signature %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-assign-operator-signature %t struct Good { Good& operator=(const Good&); diff --git a/clang-tools-extra/test/clang-tidy/misc-bool-pointer-implicit-conversion.cpp b/clang-tools-extra/test/clang-tidy/misc-bool-pointer-implicit-conversion.cpp index c8a7de93003..147b3722ed0 100644 --- a/clang-tools-extra/test/clang-tidy/misc-bool-pointer-implicit-conversion.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-bool-pointer-implicit-conversion.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-bool-pointer-implicit-conversion %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-bool-pointer-implicit-conversion %t bool *SomeFunction(); void SomeOtherFunction(bool*); diff --git a/clang-tools-extra/test/clang-tidy/misc-inaccurate-erase.cpp b/clang-tools-extra/test/clang-tidy/misc-inaccurate-erase.cpp index 4d097111965..2e86638fdef 100644 --- a/clang-tools-extra/test/clang-tidy/misc-inaccurate-erase.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-inaccurate-erase.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-inaccurate-erase %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-inaccurate-erase %t namespace std { template <typename T> struct vec_iterator { diff --git a/clang-tools-extra/test/clang-tidy/misc-inefficient-algorithm.cpp b/clang-tools-extra/test/clang-tidy/misc-inefficient-algorithm.cpp index 754e4007a4e..9bc5628dabc 100644 --- a/clang-tools-extra/test/clang-tidy/misc-inefficient-algorithm.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-inefficient-algorithm.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-inefficient-algorithm %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-inefficient-algorithm %t namespace std { template <typename T> struct less { diff --git a/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp b/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp index d298343f990..6959ee77f83 100644 --- a/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-macro-parentheses %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-macro-parentheses %t #define BAD1 -1 // CHECK-MESSAGES: :[[@LINE-1]]:27: warning: macro replacement list should be enclosed in parentheses [misc-macro-parentheses] diff --git a/clang-tools-extra/test/clang-tidy/misc-noexcept-move-constructor.cpp b/clang-tools-extra/test/clang-tidy/misc-noexcept-move-constructor.cpp index 531138681b4..bb66471ab73 100644 --- a/clang-tools-extra/test/clang-tidy/misc-noexcept-move-constructor.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-noexcept-move-constructor.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-noexcept-move-constructor %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-noexcept-move-constructor %t class A { A(A &&); diff --git a/clang-tools-extra/test/clang-tidy/misc-repeated-side-effects-in-macro.c b/clang-tools-extra/test/clang-tidy/misc-repeated-side-effects-in-macro.c index 0a482b65be1..e83caaecee2 100644 --- a/clang-tools-extra/test/clang-tidy/misc-repeated-side-effects-in-macro.c +++ b/clang-tools-extra/test/clang-tidy/misc-repeated-side-effects-in-macro.c @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-macro-repeated-side-effects %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-macro-repeated-side-effects %t #define badA(x,y) ((x)+((x)+(y))+(y)) void bad(int ret, int a, int b) { diff --git a/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp b/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp index b2c72ea8e80..aa65edf8955 100644 --- a/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-static-assert.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-static-assert %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-static-assert %t void abort() {} #ifdef NDEBUG diff --git a/clang-tools-extra/test/clang-tidy/misc-swapped-arguments.cpp b/clang-tools-extra/test/clang-tidy/misc-swapped-arguments.cpp index 746ed5790e2..c6f96eccaa4 100644 --- a/clang-tools-extra/test/clang-tidy/misc-swapped-arguments.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-swapped-arguments.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-swapped-arguments %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-swapped-arguments %t void F(int, double); diff --git a/clang-tools-extra/test/clang-tidy/misc-undelegated-constructor.cpp b/clang-tools-extra/test/clang-tidy/misc-undelegated-constructor.cpp index 7bed88aea71..fbd464772fc 100644 --- a/clang-tools-extra/test/clang-tidy/misc-undelegated-constructor.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-undelegated-constructor.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-undelegated-constructor %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-undelegated-constructor %t struct Ctor; Ctor foo(); diff --git a/clang-tools-extra/test/clang-tidy/misc-uniqueptr-reset-release.cpp b/clang-tools-extra/test/clang-tidy/misc-uniqueptr-reset-release.cpp index 3d1183991f2..710f8d65585 100644 --- a/clang-tools-extra/test/clang-tidy/misc-uniqueptr-reset-release.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-uniqueptr-reset-release.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-uniqueptr-reset-release %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-uniqueptr-reset-release %t namespace std { diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-alias-decls.cpp b/clang-tools-extra/test/clang-tidy/misc-unused-alias-decls.cpp index 46527e480c4..845e745a8b8 100644 --- a/clang-tools-extra/test/clang-tidy/misc-unused-alias-decls.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-unused-alias-decls.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-alias-decls %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-unused-alias-decls %t namespace my_namespace { class C {}; diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c index 1b04ece455b..7832ee89521 100644 --- a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c +++ b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.c @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-parameters %t -- -xc -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-unused-parameters %t -- -xc // Basic removal // ============= diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp index 7708e09086f..75a20673172 100644 --- a/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp @@ -1,8 +1,7 @@ // RUN: echo "static void staticFunctionHeader(int i) {}" > %T/header.h // RUN: echo "static void staticFunctionHeader(int /*i*/) {}" > %T/header-fixed.h -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-parameters %t -header-filter='.*' -- -fno-delayed-template-parsing +// RUN: %python %S/check_clang_tidy.py %s misc-unused-parameters %t -header-filter='.*' -- -fno-delayed-template-parsing // RUN: diff %T/header.h %T/header-fixed.h -// REQUIRES: shell #include "header.h" // CHECK-MESSAGES: header.h:1:38: warning diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-raii.cpp b/clang-tools-extra/test/clang-tidy/misc-unused-raii.cpp index 0d5f04a1f79..70b3c807284 100644 --- a/clang-tools-extra/test/clang-tidy/misc-unused-raii.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-unused-raii.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-unused-raii %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-unused-raii %t struct Foo { Foo(); diff --git a/clang-tools-extra/test/clang-tidy/misc-use-override-cxx98.cpp b/clang-tools-extra/test/clang-tidy/misc-use-override-cxx98.cpp index 429d402eb26..5928e361845 100644 --- a/clang-tools-extra/test/clang-tidy/misc-use-override-cxx98.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-use-override-cxx98.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-use-override %t -- -std=c++98 -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-use-override %t -- -std=c++98 struct Base { virtual ~Base() {} diff --git a/clang-tools-extra/test/clang-tidy/misc-use-override.cpp b/clang-tools-extra/test/clang-tidy/misc-use-override.cpp index 6c1d7d05cc2..ba9e5593b94 100644 --- a/clang-tools-extra/test/clang-tidy/misc-use-override.cpp +++ b/clang-tools-extra/test/clang-tidy/misc-use-override.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s misc-use-override %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s misc-use-override %t #define ABSTRACT = 0 diff --git a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp index 9c97cfa5cf3..1182b18a9d3 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s modernize-loop-convert %t -- -std=c++11 -I %S/Inputs/modernize-loop-convert -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s modernize-loop-convert %t -- -std=c++11 -I %S/Inputs/modernize-loop-convert #include "structures.h" diff --git a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp index 3bb4aaaff98..74cfb327f0e 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s modernize-loop-convert %t -- -std=c++11 -I %S/Inputs/modernize-loop-convert -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s modernize-loop-convert %t -- -std=c++11 -I %S/Inputs/modernize-loop-convert #include "structures.h" diff --git a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-negative.cpp b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-negative.cpp index ffec61f7dbc..6fb0552f305 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-negative.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-negative.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s modernize-loop-convert %t -- -std=c++11 -I %S/Inputs/modernize-loop-convert -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s modernize-loop-convert %t -- -std=c++11 -I %S/Inputs/modernize-loop-convert #include "structures.h" diff --git a/clang-tools-extra/test/clang-tidy/modernize-pass-by-value.cpp b/clang-tools-extra/test/clang-tidy/modernize-pass-by-value.cpp index d39648d41a9..e9347fc1d67 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-pass-by-value.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-pass-by-value.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s modernize-pass-by-value %t -- -std=c++11 -fno-delayed-template-parsing -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s modernize-pass-by-value %t -- -std=c++11 -fno-delayed-template-parsing // CHECK-FIXES: #include <utility> diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-nullptr-basic.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-nullptr-basic.cpp index 28c5ae15213..e78c5f1a147 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-nullptr-basic.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-nullptr-basic.cpp @@ -1,6 +1,5 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s modernize-use-nullptr %t -- \ +// RUN: %python %S/check_clang_tidy.py %s modernize-use-nullptr %t -- \ // RUN: -std=c++98 -Wno-non-literal-null-conversion -// REQUIRES: shell const unsigned int g_null = 0; #define NULL 0 diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp index f176fca71cb..b08df9addd5 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp @@ -1,7 +1,6 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s modernize-use-nullptr %t \ +// RUN: %python %S/check_clang_tidy.py %s modernize-use-nullptr %t \ // RUN: -config="{CheckOptions: [{key: modernize-use-nullptr.NullMacros, value: 'MY_NULL,NULL'}]}" \ // RUN: -- -std=c++11 -// REQUIRES: shell #define NULL 0 diff --git a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-few-lines.cpp b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-few-lines.cpp index acf0c15481e..db01ccd6f6a 100644 --- a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-few-lines.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-few-lines.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-braces-around-statements %t -config="{CheckOptions: [{key: readability-braces-around-statements.ShortStatementLines, value: 4}]}" -- -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-braces-around-statements %t -config="{CheckOptions: [{key: readability-braces-around-statements.ShortStatementLines, value: 4}]}" -- void do_something(const char *) {} diff --git a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-same-line.cpp b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-same-line.cpp index a821ac770d7..1f6f0c0b615 100644 --- a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-same-line.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-same-line.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-braces-around-statements %t -config="{CheckOptions: [{key: readability-braces-around-statements.ShortStatementLines, value: 1}]}" -- -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-braces-around-statements %t -config="{CheckOptions: [{key: readability-braces-around-statements.ShortStatementLines, value: 1}]}" -- void do_something(const char *) {} diff --git a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-single-line.cpp b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-single-line.cpp index 1547ef0c739..96d91aea299 100644 --- a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-single-line.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements-single-line.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-braces-around-statements %t -config="{CheckOptions: [{key: readability-braces-around-statements.ShortStatementLines, value: 2}]}" -- -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-braces-around-statements %t -config="{CheckOptions: [{key: readability-braces-around-statements.ShortStatementLines, value: 2}]}" -- void do_something(const char *) {} diff --git a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements.cpp b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements.cpp index 110adbc0020..c08be2b0923 100644 --- a/clang-tools-extra/test/clang-tidy/readability-braces-around-statements.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-braces-around-statements.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-braces-around-statements %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-braces-around-statements %t void do_something(const char *) {} diff --git a/clang-tools-extra/test/clang-tidy/readability-container-size-empty.cpp b/clang-tools-extra/test/clang-tidy/readability-container-size-empty.cpp index f19eadee1b0..6443bde2d4e 100644 --- a/clang-tools-extra/test/clang-tidy/readability-container-size-empty.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-container-size-empty.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-container-size-empty %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-container-size-empty %t namespace std { template <typename T> struct vector { diff --git a/clang-tools-extra/test/clang-tidy/readability-else-after-return.cpp b/clang-tools-extra/test/clang-tidy/readability-else-after-return.cpp index f7b38d8d0fd..f345be5053d 100644 --- a/clang-tools-extra/test/clang-tidy/readability-else-after-return.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-else-after-return.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-else-after-return %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-else-after-return %t void f(int a) { if (a > 0) diff --git a/clang-tools-extra/test/clang-tidy/readability-function-size.cpp b/clang-tools-extra/test/clang-tidy/readability-function-size.cpp index 53a3928157f..7bf2eff6449 100644 --- a/clang-tools-extra/test/clang-tidy/readability-function-size.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-function-size.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-function-size %t -config='{CheckOptions: [{key: readability-function-size.LineThreshold, value: 0}, {key: readability-function-size.StatementThreshold, value: 0}, {key: readability-function-size.BranchThreshold, value: 0}]}' -- -std=c++11 -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-function-size %t -config='{CheckOptions: [{key: readability-function-size.LineThreshold, value: 0}, {key: readability-function-size.StatementThreshold, value: 0}, {key: readability-function-size.BranchThreshold, value: 0}]}' -- -std=c++11 void foo1() { } diff --git a/clang-tools-extra/test/clang-tidy/readability-identifier-naming.cpp b/clang-tools-extra/test/clang-tidy/readability-identifier-naming.cpp index d5033520b04..c72a6d80e20 100644 --- a/clang-tools-extra/test/clang-tidy/readability-identifier-naming.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-identifier-naming.cpp @@ -1,4 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-identifier-naming %t \ +// RUN: %python %S/check_clang_tidy.py %s readability-identifier-naming %t \ // RUN: -config='{CheckOptions: [ \ // RUN: {key: readability-identifier-naming.AbstractClassCase, value: CamelCase}, \ // RUN: {key: readability-identifier-naming.AbstractClassPrefix, value: 'A'}, \ @@ -63,7 +63,6 @@ // RUN: {key: readability-identifier-naming.VirtualMethodPrefix, value: 'v_'}, \ // RUN: {key: readability-identifier-naming.IgnoreFailedSplit, value: 0} \ // RUN: ]}' -- -std=c++11 -fno-delayed-template-parsing -// REQUIRES: shell // FIXME: There should be more test cases for checking that references to class // FIXME: name, declaration contexts, forward declarations, etc, are correctly diff --git a/clang-tools-extra/test/clang-tidy/readability-named-parameter.cpp b/clang-tools-extra/test/clang-tidy/readability-named-parameter.cpp index ab60edfe4f7..ddd9671a762 100644 --- a/clang-tools-extra/test/clang-tidy/readability-named-parameter.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-named-parameter.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-named-parameter %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-named-parameter %t void Method(char *) { /* */ } // CHECK-MESSAGES: :[[@LINE-1]]:19: warning: all parameters should be named in a function diff --git a/clang-tools-extra/test/clang-tidy/readability-redundant-smartptr-get.cpp b/clang-tools-extra/test/clang-tidy/readability-redundant-smartptr-get.cpp index ef3c47f1e5f..0c1e200a52d 100644 --- a/clang-tools-extra/test/clang-tidy/readability-redundant-smartptr-get.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-redundant-smartptr-get.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-redundant-smartptr-get %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-redundant-smartptr-get %t #define NULL __null diff --git a/clang-tools-extra/test/clang-tidy/readability-redundant-string-cstr.cpp b/clang-tools-extra/test/clang-tidy/readability-redundant-string-cstr.cpp index 42f4307b188..9c610ea9cd4 100644 --- a/clang-tools-extra/test/clang-tidy/readability-redundant-string-cstr.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-redundant-string-cstr.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-redundant-string-cstr %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-redundant-string-cstr %t namespace std { template <typename T> diff --git a/clang-tools-extra/test/clang-tidy/readability-shrink-to-fit.cpp b/clang-tools-extra/test/clang-tidy/readability-shrink-to-fit.cpp index 039d95f1aa9..30715eb29cf 100644 --- a/clang-tools-extra/test/clang-tidy/readability-shrink-to-fit.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-shrink-to-fit.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-shrink-to-fit %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-shrink-to-fit %t namespace std { template <typename T> struct vector { void swap(vector &other); }; diff --git a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-assignment.cpp b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-assignment.cpp index a4e60263ec7..395184902a0 100644 --- a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-assignment.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-assignment.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-simplify-boolean-expr %t -config="{CheckOptions: [{key: "readability-simplify-boolean-expr.ChainedConditionalAssignment", value: 1}]}" -- -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-simplify-boolean-expr %t -config="{CheckOptions: [{key: "readability-simplify-boolean-expr.ChainedConditionalAssignment", value: 1}]}" -- void chained_conditional_compound_assignment(int i) { bool b; diff --git a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp index a63d7cfc531..3400cc22000 100644 --- a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-simplify-boolean-expr %t -config="{CheckOptions: [{key: "readability-simplify-boolean-expr.ChainedConditionalReturn", value: 1}]}" -- -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-simplify-boolean-expr %t -config="{CheckOptions: [{key: "readability-simplify-boolean-expr.ChainedConditionalReturn", value: 1}]}" -- bool chained_conditional_compound_return(int i) { if (i < 0) { diff --git a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp index 7ffd1c79d79..327a92dc8e9 100644 --- a/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp +++ b/clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp @@ -1,5 +1,4 @@ -// RUN: $(dirname %s)/check_clang_tidy.sh %s readability-simplify-boolean-expr %t -// REQUIRES: shell +// RUN: %python %S/check_clang_tidy.py %s readability-simplify-boolean-expr %t bool a1 = false; |