Also check Windows files
Check Windows files for some issues, including permissions. Omit the
checks related to special characters (whitespace, line endings,
encoding) as appropriate.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/scripts/check-files.py b/tests/scripts/check-files.py
index fe99b6b..4ba1d8d 100755
--- a/tests/scripts/check-files.py
+++ b/tests/scripts/check-files.py
@@ -81,6 +81,12 @@
for i, line in enumerate(iter(f.readline, b"")):
self.check_file_line(filepath, line, i + 1)
+
+def is_windows_file(filepath):
+ _root, ext = os.path.splitext(filepath)
+ return ext in ('.dsp', '.sln', '.vcxproj')
+
+
class PermissionIssueTracker(FileIssueTracker):
"""Track files with bad permissions.
@@ -113,16 +119,21 @@
heading = "UTF-8 BOM present:"
+ files_exemptions = frozenset([".vcxproj", ".sln"])
+
def check_file_for_issue(self, filepath):
with open(filepath, "rb") as f:
if f.read().startswith(codecs.BOM_UTF8):
self.files_with_issues[filepath] = None
-class LineEndingIssueTracker(LineIssueTracker):
+class UnixLineEndingIssueTracker(LineIssueTracker):
"""Track files with non-Unix line endings (i.e. files with CR)."""
- heading = "Non Unix line endings:"
+ heading = "Non-Unix line endings:"
+
+ def should_check_file(self, filepath):
+ return not is_windows_file(filepath)
def issue_with_line(self, line, _filepath):
return b"\r" in line
@@ -132,7 +143,7 @@
"""Track lines with trailing whitespace."""
heading = "Trailing whitespace:"
- files_exemptions = frozenset(".md")
+ files_exemptions = frozenset([".dsp", ".md"])
def issue_with_line(self, line, _filepath):
return line.rstrip(b"\r\n") != line.rstrip()
@@ -143,6 +154,7 @@
heading = "Tabs present:"
files_exemptions = frozenset([
+ ".sln",
"/Makefile",
"/generate_visualc_files.pl",
])
@@ -182,12 +194,15 @@
self.extensions_to_check = (
".c",
".data",
+ ".dsp",
".function",
".h",
".md",
".pl",
".py",
".sh",
+ ".sln",
+ ".vcxproj",
"/CMakeLists.txt",
"/ChangeLog",
"/Makefile",
@@ -205,7 +220,7 @@
PermissionIssueTracker(),
EndOfFileNewlineIssueTracker(),
Utf8BomIssueTracker(),
- LineEndingIssueTracker(),
+ UnixLineEndingIssueTracker(),
TrailingWhitespaceIssueTracker(),
TabIssueTracker(),
MergeArtifactIssueTracker(),