From 6902b44406ba2940dd7f34b7ec77e2ea13ff2e66 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Tue, 11 Apr 2006 00:43:27 +0000 Subject: [PATCH] Try to repair more new buildbot failures in "x86 OpenBSD trunk", due to that id() can now return a Python long on a 32-bit box that allocates addresses "with the sign bit set". test_set.py test_subclass_with_custom_hash(): it's never been portably legal for a __hash__() method to return id(self), but on 32-bit boxes that never caused a problem before it became possible for id() to return a Python long. Changed __hash__ here to return a Python int regardless of platform. test_descr.py specials(): vereq(hash(c1), id(c1)) has never been a correct test -- just removed it (hash() is always a Python int; id() may be a Python long). --- Lib/test/test_set.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py index 1a2cdda1157..0268be272d8 100644 --- a/Lib/test/test_set.py +++ b/Lib/test/test_set.py @@ -224,7 +224,7 @@ class TestJointOps(unittest.TestCase): # Bug #1257731 class H(self.thetype): def __hash__(self): - return id(self) + return int(id(self) & 0x7fffffff) s=H() f=set() f.add(s)