+++ /dev/null
-from __future__ import with_statement\r
-from pybench import Test\r
-\r
-class WithFinally(Test):\r
-\r
- version = 2.0\r
- operations = 20\r
- rounds = 80000\r
-\r
- class ContextManager(object):\r
- def __enter__(self):\r
- pass\r
- def __exit__(self, exc, val, tb):\r
- pass\r
-\r
- def test(self):\r
-\r
- cm = self.ContextManager()\r
-\r
- for i in xrange(self.rounds):\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
- with cm: pass\r
-\r
- def calibrate(self):\r
-\r
- cm = self.ContextManager()\r
-\r
- for i in xrange(self.rounds):\r
- pass\r
-\r
-\r
-class TryFinally(Test):\r
-\r
- version = 2.0\r
- operations = 20\r
- rounds = 80000\r
-\r
- class ContextManager(object):\r
- def __enter__(self):\r
- pass\r
- def __exit__(self):\r
- # "Context manager" objects used just for their cleanup\r
- # actions in finally blocks usually don't have parameters.\r
- pass\r
-\r
- def test(self):\r
-\r
- cm = self.ContextManager()\r
-\r
- for i in xrange(self.rounds):\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- cm.__enter__()\r
- try: pass\r
- finally: cm.__exit__()\r
-\r
- def calibrate(self):\r
-\r
- cm = self.ContextManager()\r
-\r
- for i in xrange(self.rounds):\r
- pass\r
-\r
-\r
-class WithRaiseExcept(Test):\r
-\r
- version = 2.0\r
- operations = 2 + 3 + 3\r
- rounds = 100000\r
-\r
- class BlockExceptions(object):\r
- def __enter__(self):\r
- pass\r
- def __exit__(self, exc, val, tb):\r
- return True\r
-\r
- def test(self):\r
-\r
- error = ValueError\r
- be = self.BlockExceptions()\r
-\r
- for i in xrange(self.rounds):\r
- with be: raise error\r
- with be: raise error\r
- with be: raise error,"something"\r
- with be: raise error,"something"\r
- with be: raise error,"something"\r
- with be: raise error("something")\r
- with be: raise error("something")\r
- with be: raise error("something")\r
-\r
- def calibrate(self):\r
-\r
- error = ValueError\r
- be = self.BlockExceptions()\r
-\r
- for i in xrange(self.rounds):\r
- pass\r