[clang-tools-extra] ebdb98f - [clang-tidy] Move fuchsia-restrict-system-includes to portability module for general use.
Paula Toth via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 10 13:34:10 PDT 2020
Author: Paula Toth
Date: 2020-03-10T13:33:06-07:00
New Revision: ebdb98f254f632b506109b9d20c6e8e19697765f
URL: https://github.com/llvm/llvm-project/commit/ebdb98f254f632b506109b9d20c6e8e19697765f
DIFF: https://github.com/llvm/llvm-project/commit/ebdb98f254f632b506109b9d20c6e8e19697765f.diff
LOG: [clang-tidy] Move fuchsia-restrict-system-includes to portability module for general use.
Summary:
Created a general check for restrict-system-includes under portability as recommend in the comments under D75332. I also fleshed out the user facing documentation to show examples for common use-cases such as allow-list, block-list, and wild carding.
Removed fuchsia's check as per phosek sugguestion.
Reviewers: aaron.ballman, phosek, alexfh, hokein, njames93
Reviewed By: phosek
Subscribers: Eugene.Zelenko, mgorny, xazax.hun, phosek, cfe-commits, MaskRay
Tags: #clang-tools-extra, #clang
Differential Revision: https://reviews.llvm.org/D75786
Added:
clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.cpp
clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
clang-tools-extra/docs/clang-tidy/checks/portability-restrict-system-includes.rst
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/a.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/cstdarg.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/cstdlib.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/j.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/r.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/s.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/t.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/transitive.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/transitive2.h
clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-allow.cpp
clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-disallow.cpp
clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-glob.cpp
clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-transitive.cpp
Modified:
clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt
clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp
clang-tools-extra/clang-tidy/portability/CMakeLists.txt
clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
clang-tools-extra/docs/ReleaseNotes.rst
clang-tools-extra/docs/clang-tidy/checks/list.rst
Removed:
clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.cpp
clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.h
clang-tools-extra/docs/clang-tidy/checks/fuchsia-restrict-system-includes.rst
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/a.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/cstdarg.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/cstdlib.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/j.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/r.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/s.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/t.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/transitive.h
clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/transitive2.h
clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-all.cpp
clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-glob.cpp
clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-headers.cpp
clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes.cpp
################################################################################
diff --git a/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt b/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt
index 30b319e7e5aa..26e6719a6475 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt
@@ -6,7 +6,6 @@ add_clang_library(clangTidyFuchsiaModule
FuchsiaTidyModule.cpp
MultipleInheritanceCheck.cpp
OverloadedOperatorCheck.cpp
- RestrictSystemIncludesCheck.cpp
StaticallyConstructedObjectsCheck.cpp
TrailingReturnCheck.cpp
VirtualInheritanceCheck.cpp
diff --git a/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp b/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp
index c59ec85468c3..39872fa1c7d0 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp
+++ b/clang-tools-extra/clang-tidy/fuchsia/FuchsiaTidyModule.cpp
@@ -14,7 +14,6 @@
#include "DefaultArgumentsDeclarationsCheck.h"
#include "MultipleInheritanceCheck.h"
#include "OverloadedOperatorCheck.h"
-#include "RestrictSystemIncludesCheck.h"
#include "StaticallyConstructedObjectsCheck.h"
#include "TrailingReturnCheck.h"
#include "VirtualInheritanceCheck.h"
@@ -39,8 +38,6 @@ class FuchsiaModule : public ClangTidyModule {
"fuchsia-multiple-inheritance");
CheckFactories.registerCheck<OverloadedOperatorCheck>(
"fuchsia-overloaded-operator");
- CheckFactories.registerCheck<RestrictSystemIncludesCheck>(
- "fuchsia-restrict-system-includes");
CheckFactories.registerCheck<StaticallyConstructedObjectsCheck>(
"fuchsia-statically-constructed-objects");
CheckFactories.registerCheck<TrailingReturnCheck>(
diff --git a/clang-tools-extra/clang-tidy/portability/CMakeLists.txt b/clang-tools-extra/clang-tidy/portability/CMakeLists.txt
index 0420a18a2a68..d2e3564c840a 100644
--- a/clang-tools-extra/clang-tidy/portability/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/portability/CMakeLists.txt
@@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS support)
add_clang_library(clangTidyPortabilityModule
PortabilityTidyModule.cpp
+ RestrictSystemIncludesCheck.cpp
SIMDIntrinsicsCheck.cpp
LINK_LIBS
diff --git a/clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp b/clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
index e12821e3d74d..c87a119aa81f 100644
--- a/clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
+++ b/clang-tools-extra/clang-tidy/portability/PortabilityTidyModule.cpp
@@ -9,6 +9,7 @@
#include "../ClangTidy.h"
#include "../ClangTidyModule.h"
#include "../ClangTidyModuleRegistry.h"
+#include "RestrictSystemIncludesCheck.h"
#include "SIMDIntrinsicsCheck.h"
namespace clang {
@@ -18,6 +19,8 @@ namespace portability {
class PortabilityModule : public ClangTidyModule {
public:
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
+ CheckFactories.registerCheck<RestrictSystemIncludesCheck>(
+ "portability-restrict-system-includes");
CheckFactories.registerCheck<SIMDIntrinsicsCheck>(
"portability-simd-intrinsics");
}
diff --git a/clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.cpp b/clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.cpp
similarity index 97%
rename from clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.cpp
rename to clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.cpp
index 98d317bea37f..15076d01a771 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.cpp
+++ b/clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.cpp
@@ -1,4 +1,4 @@
-//===--- RestrictSystemIncludesCheck.cpp - clang-tidy----------------------===//
+//===--- RestrictSystemIncludesCheck.cpp - clang-tidy ---------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -18,7 +18,7 @@
namespace clang {
namespace tidy {
-namespace fuchsia {
+namespace portability {
class RestrictedIncludesPPCallbacks : public PPCallbacks {
public:
@@ -111,6 +111,6 @@ void RestrictSystemIncludesCheck::storeOptions(
Options.store(Opts, "Includes", AllowedIncludes);
}
-} // namespace fuchsia
+} // namespace portability
} // namespace tidy
} // namespace clang
diff --git a/clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.h b/clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
similarity index 74%
rename from clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.h
rename to clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
index a0fb9fa07613..db2f9935534b 100644
--- a/clang-tools-extra/clang-tidy/fuchsia/RestrictSystemIncludesCheck.h
+++ b/clang-tools-extra/clang-tidy/portability/RestrictSystemIncludesCheck.h
@@ -1,4 +1,4 @@
-//===--- RestrictSystemIncludesCheck.h - clang-tidy---------- ----*- C++-*-===//
+//===--- RestrictSystemIncludesCheck.h - clang-tidy --------------*- C++-*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -6,21 +6,21 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_RESTRICTINCLUDESSCHECK_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_RESTRICTINCLUDESSCHECK_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PORTABILITY_RESTRICTINCLUDESSCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PORTABILITY_RESTRICTINCLUDESSCHECK_H
#include "../ClangTidyCheck.h"
#include "../GlobList.h"
namespace clang {
namespace tidy {
-namespace fuchsia {
+namespace portability {
/// Checks for allowed includes and suggests removal of any others. If no
/// includes are specified, the check will exit without issuing any warnings.
///
/// For the user-facing documentation see:
-/// http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-restrict-system-includes.html
+/// http://clang.llvm.org/extra/clang-tidy/checks/portability-restrict-system-includes.html
class RestrictSystemIncludesCheck : public ClangTidyCheck {
public:
RestrictSystemIncludesCheck(StringRef Name, ClangTidyContext *Context)
@@ -40,8 +40,8 @@ class RestrictSystemIncludesCheck : public ClangTidyCheck {
GlobList AllowedIncludesGlobList;
};
-} // namespace fuchsia
+} // namespace portability
} // namespace tidy
} // namespace clang
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_FUCHSIA_RESTRICTINCLUDESSCHECK_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PORTABILITY_RESTRICTINCLUDESSCHECK_H
\ No newline at end of file
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 3a58649ea985..68ca5f61a4fa 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -133,6 +133,9 @@ Changes in existing checks
Renamed checks
^^^^^^^^^^^^^^
+- The 'fuchsia-restrict-system-headers' check was renamed to :doc:`portability-restrict-system-includes
+ <clang-tidy/checks/portability-restrict-system-includes>
+
Improvements to include-fixer
-----------------------------
diff --git a/clang-tools-extra/docs/clang-tidy/checks/fuchsia-restrict-system-includes.rst b/clang-tools-extra/docs/clang-tidy/checks/fuchsia-restrict-system-includes.rst
deleted file mode 100644
index 622e025d115c..000000000000
--- a/clang-tools-extra/docs/clang-tidy/checks/fuchsia-restrict-system-includes.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-.. title:: clang-tidy - fuchsia-restrict-system-includes
-
-fuchsia-restrict-system-includes
-================================
-
-Checks for allowed system includes and suggests removal of any others.
-
-It is important to note that running this check with fixes may break code, as
-the fix removes headers. Fixes are applied to source and header files, but not
-to system headers.
-
-For example, given the allowed system includes 'a.h,b*':
-
-.. code-block:: c++
-
- #include <a.h>
- #include <b.h>
- #include <bar.h>
- #include <c.h> // Warning, as c.h is not explicitly allowed
-
-All system includes can be allowed with '*', and all can be disallowed with an
-empty string ('').
-
-Options
--------
-
-.. option:: Includes
-
- A string containing a comma separated glob list of allowed include filenames.
- Similar to the -checks glob list for running clang-tidy itself, the two
- wildcard characters are '*' and '-', to include and exclude globs,
- respectively.The default is '*', which allows all includes.
diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst
index 5a5140bcd429..6930f6e96de3 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/list.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst
@@ -155,7 +155,6 @@ Clang-Tidy Checks
`fuchsia-default-arguments-declarations <fuchsia-default-arguments-declarations.html>`_, "Yes"
`fuchsia-multiple-inheritance <fuchsia-multiple-inheritance.html>`_,
`fuchsia-overloaded-operator <fuchsia-overloaded-operator.html>`_,
- `fuchsia-restrict-system-includes <fuchsia-restrict-system-includes.html>`_, "Yes"
`fuchsia-statically-constructed-objects <fuchsia-statically-constructed-objects.html>`_,
`fuchsia-trailing-return <fuchsia-trailing-return.html>`_,
`fuchsia-virtual-inheritance <fuchsia-virtual-inheritance.html>`_,
@@ -256,6 +255,7 @@ Clang-Tidy Checks
`performance-type-promotion-in-math-fn <performance-type-promotion-in-math-fn.html>`_, "Yes"
`performance-unnecessary-copy-initialization <performance-unnecessary-copy-initialization.html>`_,
`performance-unnecessary-value-param <performance-unnecessary-value-param.html>`_, "Yes"
+ `portability-restrict-system-includes <portability-restrict-system-includes.html>`_, "Yes"
`portability-simd-intrinsics <portability-simd-intrinsics.html>`_,
`readability-avoid-const-params-in-decls <readability-avoid-const-params-in-decls.html>`_,
`readability-braces-around-statements <readability-braces-around-statements.html>`_, "Yes"
diff --git a/clang-tools-extra/docs/clang-tidy/checks/portability-restrict-system-includes.rst b/clang-tools-extra/docs/clang-tidy/checks/portability-restrict-system-includes.rst
new file mode 100644
index 000000000000..934550660223
--- /dev/null
+++ b/clang-tools-extra/docs/clang-tidy/checks/portability-restrict-system-includes.rst
@@ -0,0 +1,51 @@
+.. title:: clang-tidy - portability-restrict-system-includes
+
+portability-restrict-system-includes
+====================================
+
+Checks to selectively allow or disallow a configurable list of system headers.
+
+For example:
+
+In order to **only** allow `zlib.h` from the system you would set the options
+to `-*,zlib.h`.
+
+.. code-block:: c++
+
+ #include <curses.h> // Bad: disallowed system header.
+ #include <openssl/ssl.h> // Bad: disallowed system header.
+ #include <zlib.h> // Good: allowed system header.
+ #include "src/myfile.h" // Good: non-system header always allowed.
+
+In order to allow everything **except** `zlib.h` from the system you would set
+the options to `*,-zlib.h`.
+
+.. code-block:: c++
+
+ #include <curses.h> // Good: allowed system header.
+ #include <openssl/ssl.h> // Good: allowed system header.
+ #include <zlib.h> // Bad: disallowed system header.
+ #include "src/myfile.h" // Good: non-system header always allowed.
+
+Since the opions support globbing you can use wildcarding to allow groups of
+headers.
+
+`-*,openssl/*.h` will allow all openssl headers but disallow any others.
+
+.. code-block:: c++
+
+ #include <curses.h> // Bad: disallowed system header.
+ #include <openssl/ssl.h> // Good: allowed system header.
+ #include <openssl/rsa.h> // Good: allowed system header.
+ #include <zlib.h> // Bad: disallowed system header.
+ #include "src/myfile.h" // Good: non-system header always allowed.
+
+Options
+-------
+
+.. option:: Includes
+
+ A string containing a comma separated glob list of allowed include
+ filenames. Similar to the -checks glob list for running clang-tidy itself,
+ the two wildcard characters are `*` and `-`, to include and exclude globs,
+ respectively. The default is `*`, which allows all includes.
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/a.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/a.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/a.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/a.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/cstdarg.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/cstdarg.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/cstdarg.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/cstdarg.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/cstdlib.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/cstdlib.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/cstdlib.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/cstdlib.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/j.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/j.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/j.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/j.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/r.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/r.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/r.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/r.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/s.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/s.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/s.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/s.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/t.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/t.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/t.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/t.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/transitive.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/transitive.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/system/transitive.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/system/transitive.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/transitive2.h b/clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/transitive2.h
similarity index 100%
rename from clang-tools-extra/test/clang-tidy/checkers/Inputs/fuchsia-restrict-system-includes/transitive2.h
rename to clang-tools-extra/test/clang-tidy/checkers/Inputs/portability-restrict-system-includes/transitive2.h
diff --git a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-all.cpp b/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-all.cpp
deleted file mode 100644
index d521c1358dba..000000000000
--- a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-all.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
-// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: ''}]}" \
-// RUN: -- -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
-
-#include <cstdlib.h>
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include cstdlib.h not allowed
-#include <cstdarg.h>
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include cstdarg.h not allowed
-#include <t.h>
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include t.h not allowed
diff --git a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-glob.cpp b/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-glob.cpp
deleted file mode 100644
index 104f3689246c..000000000000
--- a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-glob.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
-// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'cstd*'}]}" \
-// RUN: -- -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
-
-#include <cstdlib.h>
-#include <cstdarg.h>
-#include <t.h>
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include t.h not allowed
-// CHECK-FIXES-NOT: #include <t.h>
diff --git a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes.cpp b/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes.cpp
deleted file mode 100644
index c36640822b44..000000000000
--- a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// RUN: %check_clang_tidy %s fuchsia-restrict-system-includes %t \
-// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 's.h'}]}" \
-// RUN: -- -I %S/Inputs/fuchsia-restrict-system-includes -isystem %S/Inputs/fuchsia-restrict-system-includes/system
-
-#include "a.h"
-
-#include <s.h>
-#include <t.h>
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include t.h not allowed
-// CHECK-FIXES-NOT: #include <t.h>
-
-#include "s.h"
-#include "t.h"
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include t.h not allowed
-// CHECK-FIXES-NOT: #include "t.h"
-
-#define foo <j.h>
-
-#include foo
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include j.h not allowed
-// CHECK-FIXES-NOT: #include foo
-
-#/* comment */ include /* comment */ foo
-// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include j.h not allowed
-// CHECK-FIXES-NOT: # /* comment */ include /* comment */ foo
diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-allow.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-allow.cpp
new file mode 100644
index 000000000000..faab977ad340
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-allow.cpp
@@ -0,0 +1,9 @@
+// RUN: %check_clang_tidy %s portability-restrict-system-includes %t \
+// RUN: -- -config="{CheckOptions: [{key: portability-restrict-system-includes.Includes, value: '*,-stdio.h'}]}"
+
+// Test block-list functionality: allow all but stdio.h.
+
+#include <stdio.h>
+// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include stdio.h not allowed
+#include <stdlib.h>
+#include <string.h>
diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-disallow.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-disallow.cpp
new file mode 100644
index 000000000000..58c1d4396ee5
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-disallow.cpp
@@ -0,0 +1,10 @@
+// RUN: %check_clang_tidy %s portability-restrict-system-includes %t \
+// RUN: -- -config="{CheckOptions: [{key: portability-restrict-system-includes.Includes, value: '-*,stdio.h'}]}"
+
+// Test allow-list functionality: disallow all but stdio.h.
+
+#include <stdio.h>
+#include <stdlib.h>
+// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include stdlib.h not allowed
+#include <string.h>
+// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include string.h not allowed
diff --git a/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-glob.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-glob.cpp
new file mode 100644
index 000000000000..ccde9438d93c
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-glob.cpp
@@ -0,0 +1,10 @@
+// RUN: %check_clang_tidy %s portability-restrict-system-includes %t \
+// RUN: -- -config="{CheckOptions: [{key: portability-restrict-system-includes.Includes, value: '-*,std*.h'}]}"
+
+// Test glob functionality: disallow all headers except those that match
+// pattern "std*.h".
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+// CHECK-MESSAGES: :[[@LINE-1]]:1: warning: system include string.h not allowed
diff --git a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-headers.cpp b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-transitive.cpp
similarity index 54%
rename from clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-headers.cpp
rename to clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-transitive.cpp
index b9c00e2a105a..0f68da31cd45 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/fuchsia-restrict-system-includes-headers.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/portability-restrict-system-includes-transitive.cpp
@@ -1,11 +1,11 @@
// RUN: rm -rf %T/Headers
// RUN: mkdir %T/Headers
-// RUN: cp -r %S/Inputs/fuchsia-restrict-system-includes %T/Headers/fuchsia-restrict-system-includes
-// RUN: %check_clang_tidy -std=c++11 %s fuchsia-restrict-system-includes %t \
-// RUN: -- -config="{CheckOptions: [{key: fuchsia-restrict-system-includes.Includes, value: 'transitive.h,s.h'}]}" \
+// RUN: cp -r %S/Inputs/portability-restrict-system-includes %T/Headers/portability-restrict-system-includes
+// RUN: %check_clang_tidy -std=c++11 %s portability-restrict-system-includes %t \
+// RUN: -- -config="{CheckOptions: [{key: portability-restrict-system-includes.Includes, value: 'transitive.h,s.h'}]}" \
// RUN: -system-headers -header-filter=.* \
-// RUN: -- -I %T/Headers/fuchsia-restrict-system-includes -isystem %T/Headers/fuchsia-restrict-system-includes/system
-// RUN: FileCheck -input-file=%T/Headers/fuchsia-restrict-system-includes/transitive2.h %s -check-prefix=CHECK-FIXES
+// RUN: -- -I %T/Headers/portability-restrict-system-includes -isystem %T/Headers/portability-restrict-system-includes/system
+// RUN: FileCheck -input-file=%T/Headers/portability-restrict-system-includes/transitive2.h %s -check-prefix=CHECK-FIXES
// RUN: rm -rf %T/Headers
// FIXME: Make the test work in all language modes.
More information about the cfe-commits
mailing list