Skip to content

Commit 9ae60a4

Browse files
galpeteryichoi
authored andcommitted
Improve license checker line ending validation (#2391)
The license checker previously assumed that the lines of the license will always end with \n characters. However when checking a file it could happen that other line endings are returned (should only happen for test files) thus the checker can incorrectly report invalid license as the line endings are incorrect. Additional note #1: in Python when reading a file in text mode it can happen that the line endings are converted to the host system's line ending. However on Travis the conversion did not happen when using the open built-in method. By switching to the io.open call the conversion is enforced and all line endings are converted to '\n' regardless of the host system's line ending. Additional note #2: it is possible that there are input test files which are not utf-8 conformant (eg.: to test the parser). These files can't be read as utf-8 strings and an exception would occur. By ignoring these errors the tool can check the file's license. In the license text there is no invalid utf-8 character so the check will work correctly. JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com
1 parent f32c183 commit 9ae60a4

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

tools/check-license.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from __future__ import print_function
1818

19+
import io
1920
import os
2021
import re
2122
import sys
@@ -78,7 +79,7 @@ def main():
7879
for fname in files:
7980
if any(fname.endswith(ext) for ext in EXTENSIONS):
8081
fpath = os.path.join(root, fname)
81-
with open(fpath) as curr_file:
82+
with io.open(fpath, 'r', errors='ignore') as curr_file:
8283
if not LICENSE.search(curr_file.read()):
8384
print('%s: incorrect license' % fpath)
8485
is_ok = False

0 commit comments

Comments
 (0)