Skip to content

Commit

Permalink
python#2435: missing file in pybench
Browse files Browse the repository at this point in the history
svnmerge seems to forget every added file.
  • Loading branch information
amauryfa committed Mar 20, 2008
1 parent d24a5b6 commit 2eb2c7c
Showing 1 changed file with 190 additions and 0 deletions.
190 changes: 190 additions & 0 deletions Tools/pybench/With.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
from __future__ import with_statement
from pybench import Test

class WithFinally(Test):

version = 2.0
operations = 20
rounds = 80000

class ContextManager(object):
def __enter__(self):
pass
def __exit__(self, exc, val, tb):
pass

def test(self):

cm = self.ContextManager()

for i in xrange(self.rounds):
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass
with cm: pass

def calibrate(self):

cm = self.ContextManager()

for i in xrange(self.rounds):
pass


class TryFinally(Test):

version = 2.0
operations = 20
rounds = 80000

class ContextManager(object):
def __enter__(self):
pass
def __exit__(self):
# "Context manager" objects used just for their cleanup
# actions in finally blocks usually don't have parameters.
pass

def test(self):

cm = self.ContextManager()

for i in xrange(self.rounds):
cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

cm.__enter__()
try: pass
finally: cm.__exit__()

def calibrate(self):

cm = self.ContextManager()

for i in xrange(self.rounds):
pass


class WithRaiseExcept(Test):

version = 2.0
operations = 2 + 3 + 3
rounds = 100000

class BlockExceptions(object):
def __enter__(self):
pass
def __exit__(self, exc, val, tb):
return True

def test(self):

error = ValueError
be = self.BlockExceptions()

for i in xrange(self.rounds):
with be: raise error
with be: raise error
with be: raise error,"something"
with be: raise error,"something"
with be: raise error,"something"
with be: raise error("something")
with be: raise error("something")
with be: raise error("something")

def calibrate(self):

error = ValueError
be = self.BlockExceptions()

for i in xrange(self.rounds):
pass

0 comments on commit 2eb2c7c

Please sign in to comment.