summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/test')
-rw-r--r--clang-tools-extra/test/clang-tidy/arg-comments.cpp3
-rwxr-xr-xclang-tools-extra/test/clang-tidy/check_clang_tidy.py113
-rw-r--r--clang-tools-extra/test/clang-tidy/google-explicit-constructor.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-explicit-make-pair.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-member-string-references.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-memset-zero-length.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-overloaded-unary-and.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-readability-casting.c3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-readability-casting.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-readability-todo.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/google-runtime-int.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/llvm-include-order.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/llvm-twine-local.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-assert-side-effect.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-assign-operator-signature.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-bool-pointer-implicit-conversion.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-inaccurate-erase.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-inefficient-algorithm.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-macro-parentheses.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-noexcept-move-constructor.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-repeated-side-effects-in-macro.c3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-static-assert.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-swapped-arguments.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-undelegated-constructor.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-uniqueptr-reset-release.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-unused-alias-decls.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-unused-parameters.c3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-unused-parameters.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-unused-raii.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-use-override-cxx98.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-use-override.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-loop-convert-negative.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-pass-by-value.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-use-nullptr-basic.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-use-nullptr.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-braces-around-statements-few-lines.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-braces-around-statements-same-line.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-braces-around-statements-single-line.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-braces-around-statements.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-container-size-empty.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-else-after-return.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-function-size.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-identifier-naming.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-named-parameter.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-redundant-smartptr-get.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-redundant-string-cstr.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-shrink-to-fit.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-assignment.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr-chained-conditional-return.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-simplify-bool-expr.cpp3
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;
OpenPOWER on IntegriCloud