servo: Merge #13107 - Tidy: Handle empty files (from UK992:tidy); r=Wafflespeanut

Fix index error ``list index out of range``, when file is empty.

r? @Wafflespeanut

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: c3ce9f2c909cd75c8f424bcef4036d0e29476546

--HG--
rename : servo/python/tidy/servo_tidy_tests/test_ignored/whee/foo/bar.rs => servo/python/tidy/servo_tidy_tests/empty_file.rs
This commit is contained in:
UK992 2016-08-31 07:42:25 -05:00
parent 1c0d09c584
commit c15c920395
4 changed files with 8 additions and 1 deletions

View File

@ -739,6 +739,9 @@ def collect_errors_for_files(files_to_check, checking_functions, line_checking_f
continue
with open(filename, "r") as f:
contents = f.read()
if not contents.strip():
yield filename, 0, "file is empty"
continue
for check in checking_functions:
for error in check(filename, contents):
# the result will be: `(filename, line, message)`

View File

@ -39,6 +39,11 @@ class CheckTidiness(unittest.TestCase):
self.assertEqual('no newline at EOF', errors.next()[2])
self.assertNoMoreErrors(errors)
def test_empty_file(self):
errors = tidy.collect_errors_for_files(iterFile('empty_file.rs'), [], [tidy.check_by_line], print_text=False)
self.assertEqual('file is empty', errors.next()[2])
self.assertNoMoreErrors(errors)
def test_long_line(self):
errors = tidy.collect_errors_for_files(iterFile('long_line.rs'), [], [tidy.check_by_line], print_text=False)
self.assertEqual('Line is longer than 120 characters', errors.next()[2])

View File

@ -1 +0,0 @@