From b993b067d282f825a68cb2c2a5cdd090a6057f77 Mon Sep 17 00:00:00 2001 From: Alex Martelli Date: Fri, 2 Jan 2004 17:11:54 +0000 Subject: [PATCH] The script now takes an optional command-line argument to specify how many loops to run (default remains 50,000 if no argument is specified). --- Lib/test/pystone.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/Lib/test/pystone.py b/Lib/test/pystone.py index 931a307926a..168c399d026 100755 --- a/Lib/test/pystone.py +++ b/Lib/test/pystone.py @@ -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) +