view tests/test-doctest.py @ 22104:70bdf59d27b6

run-tests: attempt to fix iolock handling Ideally, when using -j and -i together, when a prompt comes up, we'd like all other output to wait (but testing to continue!). This gets other output to wait by adding back a bunch of the locking that formerly existed. We switch to a recursive lock to deal with the restructuring due to unittest compatibility. Running tests continue to run, but now the scheduler doesn't schedule any new tasks while waiting at a prompt because no task slots become available due to result output happening in the thread and blocking on the iolock.
author Matt Mackall <mpm@selenic.com>
date Mon, 11 Aug 2014 17:45:50 -0500
parents 8dd17b19e722
children aac5482db318
line wrap: on
line source

# this is hack to make sure no escape characters are inserted into the output
import os, sys
if 'TERM' in os.environ:
    del os.environ['TERM']
import doctest

def testmod(name, optionflags=0, testtarget=None):
    __import__(name)
    mod = sys.modules[name]
    if testtarget is not None:
        mod = getattr(mod, testtarget)
    doctest.testmod(mod, optionflags=optionflags)

testmod('mercurial.changelog')
testmod('mercurial.dagparser', optionflags=doctest.NORMALIZE_WHITESPACE)
testmod('mercurial.dispatch')
testmod('mercurial.encoding')
testmod('mercurial.hg')
testmod('mercurial.hgweb.hgwebdir_mod')
testmod('mercurial.match')
testmod('mercurial.minirst')
testmod('mercurial.pathutil')
testmod('mercurial.revset')
testmod('mercurial.store')
testmod('mercurial.subrepo')
testmod('mercurial.templatefilters')
testmod('mercurial.ui')
testmod('mercurial.url')
testmod('mercurial.util')
testmod('mercurial.util', testtarget='platform')
testmod('hgext.convert.cvsps')
testmod('hgext.convert.filemap')
testmod('hgext.convert.subversion')