[webkit-reviews] review denied: [Bug 52136] Add TestOutput classes to webkitpy. : [Attachment 79548] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jan 19 21:24:28 PST 2011
Eric Seidel <eric at webkit.org> has denied James Kozianski <koz at chromium.org>'s
request for review:
Bug 52136: Add TestOutput classes to webkitpy.
https://bugs.webkit.org/show_bug.cgi?id=52136
Attachment 79548: Patch
https://bugs.webkit.org/attachment.cgi?id=79548&action=review
------- Additional Comments from Eric Seidel <eric at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=79548&action=review
I think we need another round here. Most helpful would be some explanation as
to how TestOutput is supposed to be used. I.e. does TestOutput encompass all
of the outputs from a given test (-diffs.txt, -expected.txt, -diffs.html,
-expected.checksum, etc.) or just some subset? If so, which subset? And what
is _main_file supposed to be? And why can it be either an expeted or an
actual?
The TestOutputSet.outputs_for function is probably the most important function
in this diff, since it explans how these things are supposed to be created from
a layout test results archive. But I'm not sure I fully understand it yet
(needs to be simplified and broken down a bit).
> Tools/Scripts/webkitpy/common/net/testoutputset.py:33
> +class TestOutputSet(object):
> + """A set of test outputs"""
So this sounds a lot like LayoutTestResults is now, no?
> Tools/Scripts/webkitpy/common/net/testoutputset.py:53
> + return AggregateTestOutputSet(output_sets)
This class doesn't exist?
> Tools/Scripts/webkitpy/common/net/testoutputset.py:57
> + z = DirectoryFileSet(path)
"z" isn't a very good name, and I doubt this needs to be a local anyway.
> Tools/Scripts/webkitpy/common/net/testoutputset.py:58
> + return TestOutputSet('local %s builder' % platform, platform, z)
If you're worried about line length, I would have put the string in its own
local before I put the file set in one. Then agian, we don't really worry
about line length in webkit. We (intentionally) do not follow the 80c limit of
PEP8.
> Tools/Scripts/webkitpy/common/net/testoutputset.py:74
> + target_type = kwargs.get('target_type', None)
> + exact_match = kwargs.get('exact_match', False)
Seems we should just list these as arguments with default values.
> Tools/Scripts/webkitpy/common/net/testoutputset.py:94
> + checksum_files = []
> + text_files = []
> + image_files = []
> + for output_file in self.files():
> + name_match = name_matcher.search(output_file.name())
> + actual_match = actual_matcher.search(output_file.name())
> + expected_match = expected_matcher.search(output_file.name())
> + if name_match and (actual_match or (self._include_expected and
expected_match)):
> + if output_file.name().endswith('.checksum'):
> + checksum_files.append(output_file)
> + elif output_file.name().endswith('.txt'):
> + text_files.append(output_file)
> + elif output_file.name().endswith('.png'):
> + image_files.append(output_file)
This confuses me. I would have made this a helper method, used a list
comprehension, and then zip, to zip the returned 3-tuple into 3 separate lists.
> Tools/Scripts/webkitpy/common/net/testoutputset.py:113
> + outputs = filter(lambda r: r.name() == name, outputs)
Personally I tend to use [output for output in outputs where output.name() ==
name] more often than I use filter. But filter is probably more-readable here,
especially if we give 'r' a better name (see the webkit-style guide on variable
naming).
> Tools/Scripts/webkitpy/common/net/testoutputset.py:115
> + outputs = filter(lambda r: target_type is None or target_type ==
r.type(), outputs)
target_type in [None, r.type()]?
More information about the webkit-reviews
mailing list