]> granicus.if.org Git - python/commitdiff
The script now takes an optional command-line argument to specify how many
authorAlex Martelli <aleaxit@gmail.com>
Fri, 2 Jan 2004 17:11:54 +0000 (17:11 +0000)
committerAlex Martelli <aleaxit@gmail.com>
Fri, 2 Jan 2004 17:11:54 +0000 (17:11 +0000)
loops to run (default remains 50,000 if no argument is specified).

Lib/test/pystone.py

index 931a307926ae1538453aed651cc5e9a70dd45a92..168c399d026c4d86fb8e151b386ab74003d5de04 100755 (executable)
@@ -57,10 +57,10 @@ class Record:
 TRUE = 1
 FALSE = 0
 
-def main():
-    benchtime, stones = pystones()
+def main(loops=LOOPS):
+    benchtime, stones = pystones(loops)
     print "Pystone(%s) time for %d passes = %g" % \
-          (__version__, LOOPS, benchtime)
+          (__version__, loops, benchtime)
     print "This machine benchmarks at %g pystones/second" % stones
 
 
@@ -249,4 +249,19 @@ def Func3(EnumParIn):
     return FALSE
 
 if __name__ == '__main__':
-    main()
+    import sys
+    def error(msg):
+        print >>sys.stderr, msg,
+        print >>sys.stderr, "usage: %s [number_of_loops]" % sys.argv[0]
+        sys.exit(100)
+    nargs = len(sys.argv) - 1
+    if nargs > 1:
+        error("%d arguments are too many;" % nargs)
+    elif nargs == 1:
+        try: loops = int(sys.argv[1])
+        except ValueError:
+            error("Invalid argument %r;" % sys.argv[1])
+    else:
+        loops = LOOPS
+    main(loops)
+