diff options
author | Bernd Busse <bernd@busse-net.de> | 2020-10-03 19:58:55 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-10-05 23:07:20 +0300 |
commit | c4fa87692547a25f772b3da336147b4eb9114f64 (patch) | |
tree | ea64ecc8187bcc1315d82083aba163ebb680b417 | |
parent | 4b1c1d83c88853a6be99b53e4d27c414b7b36137 (diff) | |
download | meson-c4fa87692547a25f772b3da336147b4eb9114f64.zip meson-c4fa87692547a25f772b3da336147b4eb9114f64.tar.gz meson-c4fa87692547a25f772b3da336147b4eb9114f64.tar.bz2 |
Never run clang-format / clang-tidy against directories
`pathlib.Path.glob()` also returns directories that match source
filenames (i.e. a directory named `test.h/`), but `clang-format` and
`clang-tidy` fail when handed a directory. We manually skip calling
`clang-format` and `clang-tidy` on those directories.
-rw-r--r-- | mesonbuild/scripts/clangformat.py | 2 | ||||
-rw-r--r-- | mesonbuild/scripts/clangtidy.py | 2 | ||||
-rwxr-xr-x | run_unittests.py | 2 | ||||
-rw-r--r-- | test cases/unit/54 clang-format/dummydir.h/dummy.dat | 1 | ||||
-rw-r--r-- | test cases/unit/70 clang-tidy/dummydir.h/dummy.dat | 1 |
5 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/scripts/clangformat.py b/mesonbuild/scripts/clangformat.py index 19ea5ec..e7a3ff8 100644 --- a/mesonbuild/scripts/clangformat.py +++ b/mesonbuild/scripts/clangformat.py @@ -27,6 +27,8 @@ def clangformat(exelist: T.List[str], srcdir_name: str, builddir_name: str) -> i futures = [] with ThreadPoolExecutor() as e: for f in (x for suff in suffixes for x in srcdir.glob('**/*.' + suff)): + if f.is_dir(): + continue strf = str(f) if strf.startswith(builddir_name): continue diff --git a/mesonbuild/scripts/clangtidy.py b/mesonbuild/scripts/clangtidy.py index 11174ea..03aa8c7 100644 --- a/mesonbuild/scripts/clangtidy.py +++ b/mesonbuild/scripts/clangtidy.py @@ -28,6 +28,8 @@ def manual_clangformat(srcdir_name: str, builddir_name: str) -> int: returncode = 0 with ThreadPoolExecutor() as e: for f in (x for suff in suffixes for x in srcdir.glob('**/*.' + suff)): + if f.is_dir(): + continue strf = str(f) if strf.startswith(builddir_name): continue diff --git a/run_unittests.py b/run_unittests.py index 1fd436d..0385404 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -4212,9 +4212,11 @@ recommended as it is not supported on some platforms''') if is_osx(): raise unittest.SkipTest('Apple ships a broken clang-tidy that chokes on -pipe.') testdir = os.path.join(self.unit_test_dir, '70 clang-tidy') + dummydir = os.path.join(testdir, 'dummydir.h') self.init(testdir, override_envvars={'CXX': 'c++'}) out = self.run_target('clang-tidy') self.assertIn('cttest.cpp:4:20', out) + self.assertNotIn(dummydir, out) def test_identity_cross(self): testdir = os.path.join(self.unit_test_dir, '71 cross') diff --git a/test cases/unit/54 clang-format/dummydir.h/dummy.dat b/test cases/unit/54 clang-format/dummydir.h/dummy.dat new file mode 100644 index 0000000..80c6165 --- /dev/null +++ b/test cases/unit/54 clang-format/dummydir.h/dummy.dat @@ -0,0 +1 @@ +Placeholder to track enclosing directory in git. Not to be analyzed. diff --git a/test cases/unit/70 clang-tidy/dummydir.h/dummy.dat b/test cases/unit/70 clang-tidy/dummydir.h/dummy.dat new file mode 100644 index 0000000..80c6165 --- /dev/null +++ b/test cases/unit/70 clang-tidy/dummydir.h/dummy.dat @@ -0,0 +1 @@ +Placeholder to track enclosing directory in git. Not to be analyzed. |