Log Message
TestConfiguration should be hashable and comparable for equality. https://bugs.webkit.org/show_bug.cgi?id=65070
Reviewed by Adam Barth. * Scripts/webkitpy/layout_tests/models/test_configuration.py: Added __hash__ and __eq__ methods. * Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py: Added unit tests.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (91641 => 91642)
--- trunk/Tools/ChangeLog 2011-07-23 23:42:06 UTC (rev 91641)
+++ trunk/Tools/ChangeLog 2011-07-24 03:30:17 UTC (rev 91642)
@@ -1,5 +1,15 @@
2011-07-23 Dimitri Glazkov <[email protected]>
+ TestConfiguration should be hashable and comparable for equality.
+ https://bugs.webkit.org/show_bug.cgi?id=65070
+
+ Reviewed by Adam Barth.
+
+ * Scripts/webkitpy/layout_tests/models/test_configuration.py: Added __hash__ and __eq__ methods.
+ * Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py: Added unit tests.
+
+2011-07-23 Dimitri Glazkov <[email protected]>
+
Extract TestConfiguration from base and write a few unit tests to capture current behavior.
https://bugs.webkit.org/show_bug.cgi?id=65066
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration.py (91641 => 91642)
--- trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration.py 2011-07-23 23:42:06 UTC (rev 91641)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration.py 2011-07-24 03:30:17 UTC (rev 91642)
@@ -48,6 +48,12 @@
def __repr__(self):
return "TestConfig(version='%(version)s', architecture='%(architecture)s', build_type='%(build_type)s', graphics_type='%(graphics_type)s')" % self.__dict__
+ def __hash__(self):
+ return hash(self.version + self.architecture + self.build_type + self.graphics_type)
+
+ def __eq__(self, other):
+ return self.__hash__() == other.__hash__()
+
def values(self):
"""Returns the configuration values of this instance as a tuple."""
return self.__dict__.values()
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py (91641 => 91642)
--- trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py 2011-07-23 23:42:06 UTC (rev 91641)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py 2011-07-24 03:30:17 UTC (rev 91642)
@@ -55,6 +55,30 @@
config = TestConfiguration(None, 'xp', 'x86', 'release', 'cpu')
self.assertEquals("TestConfig(version='xp', architecture='x86', build_type='release', graphics_type='cpu')", repr(config))
+ def test_hash(self):
+ config_dict = {}
+ config_dict[TestConfiguration(None, 'xp', 'x86', 'release', 'cpu')] = True
+ self.assertTrue(TestConfiguration(None, 'xp', 'x86', 'release', 'cpu') in config_dict)
+ self.assertTrue(config_dict[TestConfiguration(None, 'xp', 'x86', 'release', 'cpu')])
+ config_dict[TestConfiguration(None, 'xp', 'x86', 'release', 'gpu')] = False
+ self.assertFalse(config_dict[TestConfiguration(None, 'xp', 'x86', 'release', 'gpu')])
+
+ def query_unknown_key():
+ config_dict[TestConfiguration(None, 'xp', 'x86', 'debug', 'gpu')]
+
+ self.assertRaises(KeyError, query_unknown_key)
+ self.assertTrue(TestConfiguration(None, 'xp', 'x86', 'release', 'gpu') in config_dict)
+ self.assertFalse(TestConfiguration(None, 'xp', 'x86', 'debug', 'gpu') in config_dict)
+ configs_list = [TestConfiguration(None, 'xp', 'x86', 'release', 'gpu'), TestConfiguration(None, 'xp', 'x86', 'debug', 'gpu'), TestConfiguration(None, 'xp', 'x86', 'debug', 'gpu')]
+ self.assertEquals(len(configs_list), 3)
+ self.assertEquals(len(set(configs_list)), 2)
+
+ def test_eq(self):
+ self.assertEquals(TestConfiguration(None, 'xp', 'x86', 'release', 'cpu'), TestConfiguration(None, 'xp', 'x86', 'release', 'cpu'))
+ self.assertEquals(TestConfiguration(port.get('test-win-xp', None)), TestConfiguration(None, 'xp', 'x86', 'release', 'cpu'))
+ self.assertNotEquals(TestConfiguration(None, 'xp', 'x86', 'release', 'gpu'), TestConfiguration(None, 'xp', 'x86', 'release', 'cpu'))
+ self.assertNotEquals(TestConfiguration(None, 'xp', 'x86', 'debug', 'cpu'), TestConfiguration(None, 'xp', 'x86', 'release', 'cpu'))
+
def test_values(self):
config = TestConfiguration(None, 'xp', 'x86', 'release', 'cpu')
result_config_values = []
_______________________________________________ webkit-changes mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes
