Title: [91642] trunk/Tools
Revision
91642
Author
[email protected]
Date
2011-07-23 20:30:17 -0700 (Sat, 23 Jul 2011)

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

Reply via email to