Mercurial > hg
view tests/test-doctest.py @ 20208:61a47fd64f30 stable
fileset, revset: do not use global parser object for thread safety
parse() cannot be called at the same time because a parser object keeps its
states. This is no problem for command-line hg client, but it would cause
strange errors in multi-threaded hgweb.
Creating parser object is not too expensive.
original:
% python -m timeit -s 'from mercurial import revset' 'revset.parse("0::tip")'
100000 loops, best of 3: 11.3 usec per loop
thread-safe:
% python -m timeit -s 'from mercurial import revset' 'revset.parse("0::tip")'
100000 loops, best of 3: 13.1 usec per loop
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 21 Dec 2013 12:44:19 +0900 |
parents | f01ae031f84c |
children | 10a7d2bcb81b |
line wrap: on
line source
# this is hack to make sure no escape characters are inserted into the output import os if 'TERM' in os.environ: del os.environ['TERM'] import doctest import mercurial.util doctest.testmod(mercurial.util) # Only run doctests for the current platform doctest.testmod(mercurial.util.platform) import mercurial.changelog doctest.testmod(mercurial.changelog) import mercurial.dagparser doctest.testmod(mercurial.dagparser, optionflags=doctest.NORMALIZE_WHITESPACE) import mercurial.match doctest.testmod(mercurial.match) import mercurial.store doctest.testmod(mercurial.store) import mercurial.ui doctest.testmod(mercurial.ui) import mercurial.url doctest.testmod(mercurial.url) import mercurial.dispatch doctest.testmod(mercurial.dispatch) import mercurial.encoding doctest.testmod(mercurial.encoding) import mercurial.hgweb.hgwebdir_mod doctest.testmod(mercurial.hgweb.hgwebdir_mod) import hgext.convert.cvsps doctest.testmod(hgext.convert.cvsps) import mercurial.revset doctest.testmod(mercurial.revset) import mercurial.minirst doctest.testmod(mercurial.minirst) import mercurial.templatefilters doctest.testmod(mercurial.templatefilters)