diff --git a/utils/check-package b/utils/check-package index 83b9750f5a..3de3a72e0c 100755 --- a/utils/check-package +++ b/utils/check-package @@ -11,6 +11,7 @@ import sys import checkpackagelib.base import checkpackagelib.lib_config import checkpackagelib.lib_hash +import checkpackagelib.lib_ignore import checkpackagelib.lib_mk import checkpackagelib.lib_patch import checkpackagelib.lib_python @@ -107,6 +108,7 @@ def get_lib_from_filetype(fname): CONFIG_IN_FILENAME = re.compile(r"Config\.\S*$") DO_CHECK_INTREE = re.compile(r"|".join([ + r".checkpackageignore", r"Config.in", r"arch/", r"board/", @@ -146,6 +148,8 @@ def get_lib_from_filename(fname): if os.path.basename(fname) == "external.mk" and \ os.path.exists(fname[:-2] + "desc"): return None + if fname == ".checkpackageignore": + return checkpackagelib.lib_ignore if CONFIG_IN_FILENAME.search(fname): return checkpackagelib.lib_config if fname.endswith(".hash"): diff --git a/utils/checkpackagelib/lib_ignore.py b/utils/checkpackagelib/lib_ignore.py new file mode 100644 index 0000000000..f3698fc3b4 --- /dev/null +++ b/utils/checkpackagelib/lib_ignore.py @@ -0,0 +1,14 @@ +# See utils/checkpackagelib/readme.txt before editing this file. + +import os + +from checkpackagelib.base import _CheckFunction + + +class IgnoreMissingFile(_CheckFunction): + def check_line(self, lineno, text): + fields = text.split() + if not os.path.exists(fields[0]): + return ["{}:{}: ignored file {} is missing" + .format(self.filename, lineno, fields[0]), + text] diff --git a/utils/checkpackagelib/test_lib_ignore.py b/utils/checkpackagelib/test_lib_ignore.py new file mode 100644 index 0000000000..6cd856d669 --- /dev/null +++ b/utils/checkpackagelib/test_lib_ignore.py @@ -0,0 +1,18 @@ +import pytest +import checkpackagelib.test_util as util +import checkpackagelib.lib_ignore as m + + +IgnoreMissingFile = [ + ('missing ignored file', + '.checkpackageignore', + 'this-file-does-not-exist SomeTest', + [['.checkpackageignore:1: ignored file this-file-does-not-exist is missing', + 'this-file-does-not-exist SomeTest']]), + ] + + +@pytest.mark.parametrize('testname,filename,string,expected', IgnoreMissingFile) +def test_IgnoreMissingFile(testname, filename, string, expected): + warnings = util.check_file(m.IgnoreMissingFile, filename, string) + assert warnings == expected