Deleted Added
sdiff udiff text old ( 11592:92509f1b24f7 ) new ( 11716:95a34c2188f2 )
full compact
1#!/usr/bin/env python
2#
3# Copyright (c) 2014, 2016 ARM Limited
4# All rights reserved
5#
6# The license below extends only to copyright in the software and shall
7# not be construed as granting a license to any other intellectual
8# property including but not limited to intellectual property relating

--- 178 unchanged lines hidden (view full) ---

187 if result == 'f':
188 self.fix(filename, regions)
189 elif result == 'a':
190 return True # abort
191
192 return False
193
194 @abstractmethod
195 def check(self, filename, regions=all_regions):
196 """Check specified regions of file 'filename'.
197
198 Line-by-line checks can simply provide a check_line() method
199 that returns True if the line is OK and False if it has an
200 error. Verifiers that need a multi-line view (like
201 SortedIncludes) must override this entire function.
202
203 Returns a count of errors (0 if none), though actual non-zero
204 count value is not currently used anywhere.
205 """

--- 5 unchanged lines hidden (view full) ---

211
212 Line-by-line fixes can simply provide a fix_line() method that
213 returns the fixed line. Verifiers that need a multi-line view
214 (like SortedIncludes) must override this entire function.
215 """
216 pass
217
218class LineVerifier(Verifier):
219 def check(self, filename, regions=all_regions):
220 f = self.open(filename, 'r')
221
222 lang = lang_type(filename)
223 assert lang in self.languages
224
225 errors = 0
226 for num,line in enumerate(f):
227 if num not in regions:
228 continue
229 line = line.rstrip('\n')
230 if not self.check_line(line, language=lang):
231 self.ui.write("invalid %s in %s:%d\n" % \
232 (self.test_name, filename, num + 1))
233 if self.ui.verbose:
234 self.ui.write(">>%s<<\n" % line[:-1])
235 errors += 1
236 f.close()
237 return errors
238
239 @safefix
240 def fix(self, filename, regions=all_regions):
241 f = self.open(filename, 'r+')
242
243 lang = lang_type(filename)
244 assert lang in self.languages

--- 79 unchanged lines hidden (view full) ---

324 languages = sort_includes.default_languages
325 test_name = 'include file order'
326 opt_name = 'include'
327
328 def __init__(self, *args, **kwargs):
329 super(SortedIncludes, self).__init__(*args, **kwargs)
330 self.sort_includes = sort_includes.SortIncludes()
331
332 def check(self, filename, regions=all_regions):
333 f = self.open(filename, 'r')
334 norm_fname = self.normalize_filename(filename)
335
336 old = [ l.rstrip('\n') for l in f.xreadlines() ]
337 f.close()
338
339 if len(old) == 0:
340 return 0
341
342 language = lang_type(filename, old[0])
343 new = list(self.sort_includes(old, norm_fname, language))
344
345 modified = _modified_regions(old, new) & regions
346
347 if modified:
348 self.ui.write("invalid sorting of includes in %s\n" % (filename))
349 if self.ui.verbose:
350 for start, end in modified.regions:
351 self.ui.write("bad region [%d, %d)\n" % (start, end))
352 return 1
353
354 return 0
355
356 @safefix
357 def fix(self, filename, regions=all_regions):
358 f = self.open(filename, 'r+')
359

--- 90 unchanged lines hidden ---