diff options
| author | Tim Peters <tim.peters@gmail.com> | 2001-05-22 18:28:25 (GMT) |
|---|---|---|
| committer | Tim Peters <tim.peters@gmail.com> | 2001-05-22 18:28:25 (GMT) |
| commit | d97422115e9ed6498bc7a6f792a0bf8f278f9097 (patch) | |
| tree | a976c7881907ac437d497527a06861fb5fc83693 /Lib/test/regrtest.py | |
| parent | bc5619826e6c84d68f73df02d712302b9f25a924 (diff) | |
| download | cpython-d97422115e9ed6498bc7a6f792a0bf8f278f9097.zip cpython-d97422115e9ed6498bc7a6f792a0bf8f278f9097.tar.gz cpython-d97422115e9ed6498bc7a6f792a0bf8f278f9097.tar.bz2 | |
Implementing an idea from Guido on the checkins list:
When regrtest.py finds an attribute "test_main" in a test it imports,
regrtest runs the test's test_main after the import. test_threaded_import
needs this else the cross-thread import lock prevents it from making
progress. Other tests can use this hack too, but I doubt it will ever be
popular.
Diffstat (limited to 'Lib/test/regrtest.py')
| -rwxr-xr-x | Lib/test/regrtest.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index c77abc3..9c83221 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -244,7 +244,14 @@ def runtest(test, generate, verbose, quiet, testdir = None): if cfp: sys.stdout = cfp print test # Output file starts with test name - __import__(test, globals(), locals(), []) + the_module = __import__(test, globals(), locals(), []) + # Most tests run to completion simply as a side-effect of + # being imported. For the benefit of tests that can't run + # that way (like test_threaded_import), explicitly invoke + # their test_main() function (if it exists). + indirect_test = getattr(the_module, "test_main", None) + if indirect_test is not None: + indirect_test() if cfp and not (generate or verbose): cfp.close() finally: |
