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
 |