CVS: crypto/Util test.py,1.15,1.16

"A.M. Kuchling" <[email protected]> Fri, 13 Aug 2004 15:24:21 -0700
Newsgroups gmane.comp.python.cryptography.cvs
Message-ID <[email protected]>
Update of /cvsroot/pycrypto/crypto/Util
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27740

Modified Files:
	test.py 
Log Message:
Avoid ZeroDivisionError if resolution of time.time() is too small (e.g. on Windows)

Index: test.py
===================================================================
RCS file: /cvsroot/pycrypto/crypto/Util/test.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- test.py	28 Feb 2003 15:26:01 -0000	1.15
+++ test.py	13 Aug 2004 22:24:18 -0000	1.16
@@ -23,6 +23,13 @@
     print '***ERROR: ', string
 #    sys.exit(0)   # Will default to continuing onward...
 
+def print_timing (size, delta, verbose):
+    if verbose:
+        if delta == 0:
+            print 'Unable to measure time -- elapsed time too small'
+        else:
+            print '%.2f K/sec' % (size/delta)
+            
 def exerciseBlockCipher(cipher, verbose):
     import string, time
     try:
@@ -59,7 +66,7 @@
     end=time.time()
     if (str!=s2):
         die('Error in resulting plaintext from ECB mode')
-    if verbose: print 256/(end-start), 'K/sec'
+    print_timing(256, end-start, verbose)
     del obj
 
     if verbose: print '  CFB mode:',
@@ -71,7 +78,7 @@
     end=time.time()
     if (plaintext!=str[0:65536]):
         die('Error in resulting plaintext from CFB mode')
-    if verbose: print 64/(end-start), 'K/sec'
+    print_timing(64, end-start, verbose)
     del obj1, obj2
 
     if verbose: print '  CBC mode:',
@@ -83,7 +90,7 @@
     end=time.time()
     if (plaintext!=str):
         die('Error in resulting plaintext from CBC mode')
-    if verbose: print 256/(end-start), 'K/sec'
+    print_timing(256, end-start, verbose)
     del obj1, obj2
 
     if verbose: print '  PGP mode:',
@@ -95,7 +102,7 @@
     end=time.time()
     if (plaintext!=str):
         die('Error in resulting plaintext from PGP mode')
-    if verbose: print 256/(end-start), 'K/sec'
+    print_timing(256, end-start, verbose)
     del obj1, obj2
 
     if verbose: print '  OFB mode:',
@@ -107,7 +114,7 @@
     end=time.time()
     if (plaintext!=str):
         die('Error in resulting plaintext from OFB mode')
-    if verbose: print 256/(end-start), 'K/sec'
+    print_timing(256, end-start, verbose)
     del obj1, obj2
 
     def counter(length=ciph.block_size):
@@ -122,7 +129,7 @@
     end=time.time()
     if (plaintext!=str):
         die('Error in resulting plaintext from CTR mode')
-    if verbose: print 256/(end-start), 'K/sec'
+    print_timing(256, end-start, verbose)
     del obj1, obj2
 
     # Test the IV handling
@@ -178,7 +185,7 @@
     s=obj1.encrypt(str)
     str=obj2.decrypt(s)
     end=time.time()
-    if verbose: print 256/(end-start), 'K/sec'
+    print_timing(256, end-start, verbose)
     del obj1, obj2
 
     return ciph



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285