Add --all for test-tidy, with backwards-compat with --faster

This commit is contained in:
Mitchell Hentges 2016-05-19 19:37:16 +02:00
parent dea610986d
commit 29da462136
2 changed files with 22 additions and 7 deletions

View file

@ -257,15 +257,30 @@ class MachCommands(CommandBase):
category='testing') category='testing')
@CommandArgument('--faster', default=False, action="store_true", @CommandArgument('--faster', default=False, action="store_true",
help="Only check changed files and skip the WPT lint in tidy, " help="Only check changed files and skip the WPT lint in tidy, "
"if there are no changes in the WPT files") "if there are no changes in the WPT files. Cannot be used with --all")
@CommandArgument('--all', default=False, action="store_true", dest="all_files",
help="Check all files, and run the WPT lint in tidy, "
"even if unchanged. Cannot be used with --faster")
@CommandArgument('--no-progress', default=False, action="store_true", @CommandArgument('--no-progress', default=False, action="store_true",
help="Don't show progress for tidy") help="Don't show progress for tidy")
@CommandArgument('--self-test', default=False, action="store_true", @CommandArgument('--self-test', default=False, action="store_true",
help="Run unit tests for tidy") help="Run unit tests for tidy")
def test_tidy(self, faster, no_progress, self_test): def test_tidy(self, faster, all_files, no_progress, self_test):
if self_test: if self_test:
return test_tidy.do_tests() return test_tidy.do_tests()
else: else:
# The `test-tidy` command is currently mid-migration from --faster to --all.
# Since --faster and --all are opposites, they cannot both be used at the same time
if faster and all_files:
print("Cannot tidy --all while also being --faster")
return -1
# |--faster|--all|behaviour of tidy.scan()
# | false|false|scan all files # This was the behaviour before adding --all
# | true|false|only scan changed files # Expected behaviour if --faster is used
# | false| true|scan all files # Expected behaviour if --all is used
#
# The pattern: if `faster` is true, go fast. Otherwise, go slow.
return tidy.scan(faster, not no_progress) return tidy.scan(faster, not no_progress)
@Command('test-webidl', @Command('test-webidl',

View file

@ -101,8 +101,8 @@ def filter_file(file_name):
return True return True
def filter_files(start_dir, faster, progress): def filter_files(start_dir, only_changed_files, progress):
file_iter = get_file_list(start_dir, faster, ignored_dirs) file_iter = get_file_list(start_dir, only_changed_files, ignored_dirs)
(has_element, file_iter) = is_iter_empty(file_iter) (has_element, file_iter) = is_iter_empty(file_iter)
if not has_element: if not has_element:
raise StopIteration raise StopIteration
@ -649,14 +649,14 @@ def get_file_list(directory, only_changed_files=False, exclude_dirs=[]):
yield os.path.join(root, f) yield os.path.join(root, f)
def scan(faster=False, progress=True): def scan(only_changed_files=False, progress=True):
# standard checks # standard checks
files_to_check = filter_files('.', faster, progress) files_to_check = filter_files('.', only_changed_files, progress)
checking_functions = (check_flake8, check_lock, check_webidl_spec, check_json) checking_functions = (check_flake8, check_lock, check_webidl_spec, check_json)
line_checking_functions = (check_license, check_by_line, check_toml, check_rust, check_spec, check_modeline) line_checking_functions = (check_license, check_by_line, check_toml, check_rust, check_spec, check_modeline)
errors = collect_errors_for_files(files_to_check, checking_functions, line_checking_functions) errors = collect_errors_for_files(files_to_check, checking_functions, line_checking_functions)
# wpt lint checks # wpt lint checks
wpt_lint_errors = check_wpt_lint_errors(get_wpt_files(faster, progress)) wpt_lint_errors = check_wpt_lint_errors(get_wpt_files(only_changed_files, progress))
# collect errors # collect errors
errors = itertools.chain(errors, wpt_lint_errors) errors = itertools.chain(errors, wpt_lint_errors)
error = None error = None