symbian-qemu-0.9.1-12/python-2.6.1/Tools/pybench/With.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 from __future__ import with_statement
       
     2 from pybench import Test
       
     3 
       
     4 class WithFinally(Test):
       
     5 
       
     6     version = 2.0
       
     7     operations = 20
       
     8     rounds = 80000
       
     9 
       
    10     class ContextManager(object):
       
    11         def __enter__(self):
       
    12             pass
       
    13         def __exit__(self, exc, val, tb):
       
    14             pass
       
    15 
       
    16     def test(self):
       
    17 
       
    18         cm = self.ContextManager()
       
    19 
       
    20         for i in xrange(self.rounds):
       
    21             with cm: pass
       
    22             with cm: pass
       
    23             with cm: pass
       
    24             with cm: pass
       
    25             with cm: pass
       
    26             with cm: pass
       
    27             with cm: pass
       
    28             with cm: pass
       
    29             with cm: pass
       
    30             with cm: pass
       
    31             with cm: pass
       
    32             with cm: pass
       
    33             with cm: pass
       
    34             with cm: pass
       
    35             with cm: pass
       
    36             with cm: pass
       
    37             with cm: pass
       
    38             with cm: pass
       
    39             with cm: pass
       
    40             with cm: pass
       
    41 
       
    42     def calibrate(self):
       
    43 
       
    44         cm = self.ContextManager()
       
    45 
       
    46         for i in xrange(self.rounds):
       
    47             pass
       
    48 
       
    49 
       
    50 class TryFinally(Test):
       
    51 
       
    52     version = 2.0
       
    53     operations = 20
       
    54     rounds = 80000
       
    55 
       
    56     class ContextManager(object):
       
    57         def __enter__(self):
       
    58             pass
       
    59         def __exit__(self):
       
    60             # "Context manager" objects used just for their cleanup
       
    61             # actions in finally blocks usually don't have parameters.
       
    62             pass
       
    63 
       
    64     def test(self):
       
    65 
       
    66         cm = self.ContextManager()
       
    67 
       
    68         for i in xrange(self.rounds):
       
    69             cm.__enter__()
       
    70             try: pass
       
    71             finally: cm.__exit__()
       
    72 
       
    73             cm.__enter__()
       
    74             try: pass
       
    75             finally: cm.__exit__()
       
    76 
       
    77             cm.__enter__()
       
    78             try: pass
       
    79             finally: cm.__exit__()
       
    80 
       
    81             cm.__enter__()
       
    82             try: pass
       
    83             finally: cm.__exit__()
       
    84 
       
    85             cm.__enter__()
       
    86             try: pass
       
    87             finally: cm.__exit__()
       
    88 
       
    89             cm.__enter__()
       
    90             try: pass
       
    91             finally: cm.__exit__()
       
    92 
       
    93             cm.__enter__()
       
    94             try: pass
       
    95             finally: cm.__exit__()
       
    96 
       
    97             cm.__enter__()
       
    98             try: pass
       
    99             finally: cm.__exit__()
       
   100 
       
   101             cm.__enter__()
       
   102             try: pass
       
   103             finally: cm.__exit__()
       
   104 
       
   105             cm.__enter__()
       
   106             try: pass
       
   107             finally: cm.__exit__()
       
   108 
       
   109             cm.__enter__()
       
   110             try: pass
       
   111             finally: cm.__exit__()
       
   112 
       
   113             cm.__enter__()
       
   114             try: pass
       
   115             finally: cm.__exit__()
       
   116 
       
   117             cm.__enter__()
       
   118             try: pass
       
   119             finally: cm.__exit__()
       
   120 
       
   121             cm.__enter__()
       
   122             try: pass
       
   123             finally: cm.__exit__()
       
   124 
       
   125             cm.__enter__()
       
   126             try: pass
       
   127             finally: cm.__exit__()
       
   128 
       
   129             cm.__enter__()
       
   130             try: pass
       
   131             finally: cm.__exit__()
       
   132 
       
   133             cm.__enter__()
       
   134             try: pass
       
   135             finally: cm.__exit__()
       
   136 
       
   137             cm.__enter__()
       
   138             try: pass
       
   139             finally: cm.__exit__()
       
   140 
       
   141             cm.__enter__()
       
   142             try: pass
       
   143             finally: cm.__exit__()
       
   144 
       
   145             cm.__enter__()
       
   146             try: pass
       
   147             finally: cm.__exit__()
       
   148 
       
   149     def calibrate(self):
       
   150 
       
   151         cm = self.ContextManager()
       
   152 
       
   153         for i in xrange(self.rounds):
       
   154             pass
       
   155 
       
   156 
       
   157 class WithRaiseExcept(Test):
       
   158 
       
   159     version = 2.0
       
   160     operations = 2 + 3 + 3
       
   161     rounds = 100000
       
   162 
       
   163     class BlockExceptions(object):
       
   164         def __enter__(self):
       
   165             pass
       
   166         def __exit__(self, exc, val, tb):
       
   167             return True
       
   168 
       
   169     def test(self):
       
   170 
       
   171         error = ValueError
       
   172         be = self.BlockExceptions()
       
   173 
       
   174         for i in xrange(self.rounds):
       
   175             with be: raise error
       
   176             with be: raise error
       
   177             with be: raise error,"something"
       
   178             with be: raise error,"something"
       
   179             with be: raise error,"something"
       
   180             with be: raise error("something")
       
   181             with be: raise error("something")
       
   182             with be: raise error("something")
       
   183 
       
   184     def calibrate(self):
       
   185 
       
   186         error = ValueError
       
   187         be = self.BlockExceptions()
       
   188 
       
   189         for i in xrange(self.rounds):
       
   190             pass