[clang-tools-extra] ebdb98f - [clang-tidy] Move fuchsia-restrict-system-includes to portability module for general use.
Voss, Matthew via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 10 15:14:20 PDT 2020
Hi Paula,
The tests in this commit are failing on the PS4 Windows bot and our internal CI. Could you take a look?
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast
Thanks,
Matthew
> -----Original Message-----
> From: cfe-commits <cfe-commits-bounces at lists.llvm.org> On Behalf Of Paula
> Toth via cfe-commits
> Sent: Tuesday, March 10, 2020 1:34 PM
> To: cfe-commits at lists.llvm.org
> Subject: [clang-tools-extra] ebdb98f - [clang-tidy] Move fuchsia-restrict-
> system-includes to portability module for general use.
>
>
> 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/RestrictSystemIncludesChe
> +++ ck.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/RestrictSystemIncludesChe
> +++ ck.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-syst
> +em-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-syst
> +++ em-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-sy
> +++ stem-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-sy
> +++ stem-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-sy
> +++ stem-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-sy
> +++ stem-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.
>
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list