[Webkit-unassigned] [Bug 162458] EWS should run JavaScriptCore tests
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Feb 9 13:24:17 PST 2017
https://bugs.webkit.org/show_bug.cgi?id=162458
--- Comment #34 from Dean Johnson <dean_johnson at apple.com> ---
Comment on attachment 301069
--> https://bugs.webkit.org/attachment.cgi?id=301069
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=301069&action=review
As a heads up, I didn't do much reviewing of the unit tests. Really happy to see the labor put towards this come to fruition! :)
> Tools/Scripts/webkitpy/common/config/ports.py:167
> + if (test_suite == "jsc"):
Nit: No need for parens.
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:51
> + def __init__(self, all_api_tests_passed, stress_test_failures):
Nit: __init__ should always be the first method defined for a class when not inherited.
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:55
> + self._test_results = stress_test_failures[:]
This should be renamed to self.test_results since it will be accessed outside of the class (see comments below).
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:61
> + set(self._stress_test_failures) == set(other._stress_test_failures)
Python style discourages the use of \ to break lines. Instead, wrap the statement with parens ().
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:67
> + return self._stress_test_failures
This is the logical equivalent of a "getter" and because Python doesn't use public/private scopes you should remove this function and do direct variable access. To do this, rename _stress_test_failures => stress_test_failures and call <some_instantiated_JSCTestResultsobject>.stress_test_failures to retrieve the value.
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:70
> + return self._all_api_tests_passed
Ditto to "getter" comment.
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:76
> + return self.stress_test_failures()
Ditto to "getter" comment.
> Tools/Scripts/webkitpy/common/net/jsctestresults.py:79
> + return self._test_results
Ditto to "getter" comment.
> Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:30
> +class JSCTestResultsReader(object):
Is this entire class really necessary? All it does it open a file and read the contents then pass it through to JSCTestResults. It seems like it'd be better to define an @classmethod that took a results_file_path and maybe had a name like "results_from_file." But if this is the only entrypoint to JSCResults, it might be even better just to merge the functionality of this class and the @classmethod from JSCTestResults::results_from_string.
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:143
> + "Patch was not relevant")
It doesn't seem necessary for line-length concerns to put each argument on its own line. Also, if self._run_command has default arguments then using them like: `return self._run_command(args, success_text="Checked relevance of patch", failure_text="Patch was not relevant")` would be more clear.
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:159
> + "Patch does not build")
Ditto to line-length and default args comment.
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:175
> + "Unable to build without patch")
Ditto to line-length and default args comment.
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:213
> + "Unable to pass tests without patch (tree is red?)")
Ditto to line-length and default args comment.
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:258
> + if hasattr(self._delegate, 'group') and self._delegate.group() == "jsc":
If make_option is used for self._delegate, I don't believe you need the hasattr(self._delegate, 'group') statement here.
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:259
> + first_results = self._delegate.test_results()
I'm unclear on what "first" and "second" are referring to -- can you rename the variables to be more accurate?
> Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:348
> + return True
This function is very long... is there a way you can nicely put some of the logic into more isolated functions?
> Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:68
> + class TestEWS(AbstractEarlyWarningSystem):
TestEWS should be defined outside of this function (at the top level of the file).
> Tools/Scripts/webkitpy/tool/steps/build.py:71
> + if hasattr(self._options, 'group'):
group should always be defined given you have a default value defined (as None).
> Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:64
> + if group == "jsc":
Given we know we're going to be adding many more projects here, I recommend you do something like this:
# Define group_to_path_mapping at the same scope as jsc_paths
group_to_paths_mapping = {
'jsc': jsc_paths,
}
def run(self, state)
.....
relevant_paths = self.group_to_paths_mapping.get(group, [])
relevant = self._does_contain_change_in_paths(change_list, relevant_paths)
> Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:72
> + else:
This else is unnecessary since you return True in the alternative branch.
> Tools/Scripts/webkitpy/tool/steps/runtests.py:61
> + if hasattr(self._options, "group") and self._options.group == "jsc":
Ditto to hasattr being unnecessary.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170209/ea68bcaa/attachment.html>
More information about the webkit-unassigned
mailing list