summaryrefslogtreecommitdiffstats
path: root/Lib/timeit.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-01-26 09:54:32 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2015-01-26 09:54:32 (GMT)
commit001320720090976b8a44b2aaf7c5a10ce66f40b9 (patch)
tree7a98893fa245c9893eb480ad8d66aa21e3e38d2a /Lib/timeit.py
parent5f1909a4ca98ce0d5bcb18df27890629ced02689 (diff)
downloadcpython-001320720090976b8a44b2aaf7c5a10ce66f40b9.zip
cpython-001320720090976b8a44b2aaf7c5a10ce66f40b9.tar.gz
cpython-001320720090976b8a44b2aaf7c5a10ce66f40b9.tar.bz2
Issue #11578: Backported test for the timeit module.
Diffstat (limited to 'Lib/timeit.py')
-rwxr-xr-xLib/timeit.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/Lib/timeit.py b/Lib/timeit.py
index da9e819..ef246ce 100755
--- a/Lib/timeit.py
+++ b/Lib/timeit.py
@@ -234,10 +234,10 @@ def repeat(stmt="pass", setup="pass", timer=default_timer,
"""Convenience function to create Timer object and call repeat method."""
return Timer(stmt, setup, timer).repeat(repeat, number)
-def main(args=None):
+def main(args=None, _wrap_timer=None):
"""Main program, used when run as a script.
- The optional argument specifies the command line to be parsed,
+ The optional 'args' argument specifies the command line to be parsed,
defaulting to sys.argv[1:].
The return value is an exit code to be passed to sys.exit(); it
@@ -246,6 +246,10 @@ def main(args=None):
When an exception happens during timing, a traceback is printed to
stderr and the return value is 1. Exceptions at other times
(including the template compilation) are not caught.
+
+ '_wrap_timer' is an internal interface used for unit testing. If it
+ is not None, it must be a callable that accepts a timer function
+ and returns another timer function (used for unit testing).
"""
if args is None:
args = sys.argv[1:]
@@ -291,6 +295,8 @@ def main(args=None):
# directory)
import os
sys.path.insert(0, os.curdir)
+ if _wrap_timer is not None:
+ timer = _wrap_timer(timer)
t = Timer(stmt, setup, timer)
if number == 0:
# determine number so that 0.2 <= total time < 2.0