Changeset 92006 in webkit
- Timestamp:
- Jul 29, 2011 2:04:57 PM (13 years ago)
- Location:
- trunk/Tools
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r91911 r92006 1 2011-07-29 Dimitri Glazkov <dglazkov@chromium.org> 2 3 Fix an error in macro collapsing, refactor code to be pretty. 4 https://bugs.webkit.org/show_bug.cgi?id=65387 5 6 My set math was wrong. 7 8 Reviewed by Adam Barth. 9 10 * Scripts/webkitpy/layout_tests/models/test_configuration.py: Moved collapsing into a classmethod, fixed the math to be correct. 11 * Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py: Added unit tests. 12 1 13 2011-07-27 Ryuan Choi <ryuan.choi@samsung.com> 2 14 -
trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration.py
r91874 r92006 122 122 return reduce(set.intersection, matching_sets.values()) 123 123 124 @classmethod 125 def collapse_macros(cls, macros_dict, specifiers_list): 126 for i in range(len(specifiers_list)): 127 for macro_specifier, macro in macros_dict.items(): 128 specifiers_set = set(specifiers_list[i]) 129 macro_set = set(macro) 130 if specifiers_set >= macro_set: 131 specifiers_list[i] = frozenset((specifiers_set - macro_set) | set([macro_specifier])) 132 124 133 def to_specifiers_list(self, test_configuration_set): 125 134 """Convert a set of TestConfiguration instances into one or more list of specifiers.""" … … 202 211 # 4) Substitute specifier subsets that match macros witin each set: 203 212 # (xp, vista, win7, release) -> (win, release) 204 for i in range(len(specifiers_list)): 205 for macro_specifier, macro in self._configuration_macros.items(): 206 diff = set(specifiers_list[i]) - set(macro) 207 if specifiers_list[i] != diff: 208 specifiers_list[i] = frozenset(diff | set([macro_specifier])) 213 self.collapse_macros(self._configuration_macros, specifiers_list) 209 214 210 215 return specifiers_list -
trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py
r91874 r92006 265 265 266 266 def test_macro_collapsing(self): 267 macros = {'foo': ['bar', 'baz'], 'people': ['bob', 'alice', 'john']} 268 269 specifiers_list = [set(['john', 'godzilla', 'bob', 'alice'])] 270 TestConfigurationConverter.collapse_macros(macros, specifiers_list) 271 self.assertEquals(specifiers_list, [set(['people', 'godzilla'])]) 272 273 specifiers_list = [set(['john', 'godzilla', 'alice'])] 274 TestConfigurationConverter.collapse_macros(macros, specifiers_list) 275 self.assertEquals(specifiers_list, [set(['john', 'godzilla', 'alice', 'godzilla'])]) 276 277 specifiers_list = [set(['bar', 'godzilla', 'baz', 'bob', 'alice', 'john'])] 278 TestConfigurationConverter.collapse_macros(macros, specifiers_list) 279 self.assertEquals(specifiers_list, [set(['foo', 'godzilla', 'people'])]) 280 281 specifiers_list = [set(['bar', 'godzilla', 'baz', 'bob']), set(['bar', 'baz']), set(['people', 'alice', 'bob', 'john'])] 282 TestConfigurationConverter.collapse_macros(macros, specifiers_list) 283 self.assertEquals(specifiers_list, [set(['bob', 'foo', 'godzilla']), set(['foo']), set(['people'])]) 284 285 def test_converter_macro_collapsing(self): 267 286 converter = TestConfigurationConverter(self._all_test_configurations, self._macros) 268 287
Note: See TracChangeset
for help on using the changeset viewer.