[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