1 # Python test set -- part 3, built-in operations.
5 print 'XXX Mostly not yet implemented'
8 print '3.1 Dictionary lookups succeed even if __cmp__() raises an exception'
10 # SourceForge bug #112558:
11 # http://sourceforge.net/bugs/?func=detailbug&bug_id=112558&group_id=5470
14 already_printed_raising_error
= 0
17 return hash(self
.__class
__)
19 def __cmp__(self
, other
):
20 if isinstance(other
, self
.__class
__):
21 if not BadDictKey
.already_printed_raising_error
:
22 # How many times __cmp__ gets called depends on the hash
23 # code and the internals of the dict implementation; we
24 # know it will be called at least once, but that's it.
25 # already_printed_raising_error makes sure the expected-
26 # output file prints the msg at most once.
27 BadDictKey
.already_printed_raising_error
= 1
29 raise RuntimeError, "gotcha"
37 print "No exception passed through."
39 # Dict resizing bug, found by Jack Jansen in 2.2 CVS development.
40 # This version got an assert failure in debug build, infinite loop in
41 # release build. Unfortunately, provoking this kind of stuff requires
42 # a mix of inserts and deletes hitting exactly the right hash codes in
43 # exactly the right order, and I can't think of a randomized approach
44 # that would be *likely* to hit a failing case in reasonable time.
51 for i
in range(5, 9): # i==8 was the problem