These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			191 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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
 |