1
# Copyright 2012, Kay Hayen, mailto:kayhayen@gmx.de
3
# Python tests originally created or extracted from other peoples work. The
4
# parts were too small to be protected.
6
# Licensed under the Apache License, Version 2.0 (the "License");
7
# you may not use this file except in compliance with the License.
8
# You may obtain a copy of the License at
10
# http://www.apache.org/licenses/LICENSE-2.0
12
# Unless required by applicable law or agreed to in writing, software
13
# distributed under the License is distributed on an "AS IS" BASIS,
14
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
# See the License for the specific language governing permissions and
16
# limitations under the License.
22
def simpleFunction1():
25
def simpleFunction2():
32
def simpleFunction3():
38
def simpleFunction4():
46
def simpleFunction5( a = 1*2 ):
50
def simpleFunction6():
54
for c in (1, 2, 3, 4, 5, 6):
58
def simpleFunction7( b = 1 ):
62
def simpleFunction8():
66
def simpleFunction9( a = 1*2 ):
72
def simpleFunction10( a = 1*2 ):
73
x = [u for u in range(8)]
75
def simpleFunction11():
83
def simpleFunction12():
84
a = [ (u,v) for (u,v) in zip(range(8),range(8)) ]
89
def simpleFunction13( a = 1*2 ):
92
def simpleFunction14p(x):
94
simpleFunction14p(1,1)
99
simpleFunction14p(1,1)
103
def simpleFunction14():
104
simpleFunction14p( 3 )
106
def simpleFunction15p(x):
118
def simpleFunction15():
119
simpleFunction15p( [ 1 ] )
121
def simpleFunction16():
127
def simpleFunction17():
128
class EmptyObjectClass:
131
return EmptyObjectClass()
133
def simpleFunction18():
137
def __init__( self, a, b ):
143
return NonEmptyClass( 133, 135 )
145
def simpleFunction19():
151
def simpleFunction20():
155
except IndexError, e:
159
def simpleFunction21():
160
class EmptyBaseClass:
164
class EmptyObjectClass( EmptyBaseClass ):
167
result = EmptyObjectClass()
173
def simpleFunction22():
174
return True is False and False is not None
176
def simpleFunction23():
179
def simpleFunction24p( x ):
182
def simpleFunction24():
183
simpleFunction24p( x = 3 )
186
def simpleFunction25():
190
def inplace_adder( b ):
193
return inplace_adder( 6**8 )
196
def simpleFunction26():
200
def inplace_adder( b ):
203
return inplace_adder( [ 1, 2 ] )
205
def simpleFunction27():
208
def inplace_adder( b ):
211
return inplace_adder( 3 )
213
def simpleFunction28():
214
a = { "g": [ 8 ], "h": 2 }
216
def inplace_adder( b ):
219
return inplace_adder( [ 3, 5 ] )
222
def simpleFunction29():
225
def simpleFunction30():
226
def generatorFunction():
231
def simpleFunction31():
232
def generatorFunction():
239
for y in generatorFunction():
242
for z in generatorFunction():
246
def simpleFunction32():
247
def generatorFunction():
250
gen = generatorFunction()
253
def simpleFunction33():
254
def generatorFunction():
261
for y in generatorFunction():
265
def simpleFunction34():
271
def simpleFunction35():
273
raise ValueError(1,2,3)
278
def simpleFunction36():
280
raise TypeError, (3,x,x,x)
284
def simpleFunction37():
293
def simpleFunction38():
297
class Parent( Base ):
300
def simpleFunction39():
301
class Parent( object ):
305
def simpleFunction40():
311
def simpleFunction41():
315
def simpleFunction42():
319
def simpleFunction43():
327
def simpleFunction44():
328
def nested_args_function( (a,b), c ):
331
nested_args_function( ( 1, 2 ), 3 )
333
def simpleFunction45():
334
def nested_args_function( (a,b), c ):
338
nested_args_function( ( 1, ), 3 )
342
def simpleFunction46():
343
def nested_args_function( (a,b), c ):
347
nested_args_function( ( 1, 2, 3 ), 3 )
351
def simpleFunction47():
353
def raisingFunction():
369
def simpleFunction48():
370
class BlockExceptions:
371
def __enter__( self ):
373
def __exit__( self, exc, val, tb):
376
with BlockExceptions():
379
template = "lala %s lala"
381
def simpleFunction49():
385
a = x, y = b,e = (c,d)
389
def simpleFunction50():
405
def checkReferenceCount( checked_function, max_rounds = 4 ):
407
print checked_function.func_name + ":",
412
for count in range( max_rounds ):
414
ref_count1 = sys.gettotalrefcount()
421
ref_count2 = sys.gettotalrefcount()
423
if ref_count1 == ref_count2:
427
print "FAILED", ref_count1, ref_count2
433
checkReferenceCount( simpleFunction1 )
434
checkReferenceCount( simpleFunction2 )
435
checkReferenceCount( simpleFunction3 )
436
checkReferenceCount( simpleFunction4 )
437
checkReferenceCount( simpleFunction5 )
438
checkReferenceCount( simpleFunction6 )
439
checkReferenceCount( simpleFunction7 )
440
checkReferenceCount( simpleFunction8 )
441
checkReferenceCount( simpleFunction9 )
442
checkReferenceCount( simpleFunction10 )
443
checkReferenceCount( simpleFunction11 )
444
checkReferenceCount( simpleFunction12 )
445
checkReferenceCount( simpleFunction13 )
446
checkReferenceCount( simpleFunction14 )
447
checkReferenceCount( simpleFunction15 )
448
checkReferenceCount( simpleFunction16 )
449
checkReferenceCount( simpleFunction17 )
450
checkReferenceCount( simpleFunction18 )
451
checkReferenceCount( simpleFunction19 )
452
checkReferenceCount( simpleFunction20 )
453
checkReferenceCount( simpleFunction21 )
454
checkReferenceCount( simpleFunction22 )
455
checkReferenceCount( simpleFunction23 )
456
checkReferenceCount( simpleFunction24 )
457
checkReferenceCount( simpleFunction25 )
458
checkReferenceCount( simpleFunction26 )
459
checkReferenceCount( simpleFunction27 )
460
checkReferenceCount( simpleFunction28 )
461
checkReferenceCount( simpleFunction29 )
462
checkReferenceCount( simpleFunction30 )
463
checkReferenceCount( simpleFunction31 )
464
checkReferenceCount( simpleFunction32 )
465
checkReferenceCount( simpleFunction33 )
466
checkReferenceCount( simpleFunction34 )
467
checkReferenceCount( simpleFunction35 )
468
checkReferenceCount( simpleFunction36 )
469
checkReferenceCount( simpleFunction37 )
470
checkReferenceCount( simpleFunction38 )
471
checkReferenceCount( simpleFunction39 )
472
checkReferenceCount( simpleFunction40 )
473
checkReferenceCount( simpleFunction41 )
474
checkReferenceCount( simpleFunction42 )
475
checkReferenceCount( simpleFunction43 )
476
checkReferenceCount( simpleFunction44 )
477
checkReferenceCount( simpleFunction45 )
478
checkReferenceCount( simpleFunction46 )
479
checkReferenceCount( simpleFunction47 )
480
checkReferenceCount( simpleFunction48 )
481
checkReferenceCount( simpleFunction49 )
482
checkReferenceCount( simpleFunction50 )