[Python-Dev] Fwd: Allowing to run certain regression tests in subprocesses (original) (raw)

Eli Bendersky eliben at gmail.com
Sun Aug 4 04:04:59 CEST 2013


On Sat, Aug 3, 2013 at 6:57 PM, R. David Murray <rdmurray at bitdance.com> wrote:

On Sat, 03 Aug 2013 16:47:37 -0700, Eli Bendersky <eliben at gmail.com> wrote:

On Sat, Aug 3, 2013 at 4:36 PM, Eli Bendersky <eliben at gmail.com> wrote: > Hi All, > > Today the issue of cross-test global env dependencies showed its ugly > head again for me. I recall a previous discussion > (http://mail.python.org/pipermail/python-dev/2013-January/123409.html) > but there were many more over the years. > > The core problem is that some tests modify the global env > (particularly importing modules) and this sometimes has adverse > effects on other tests, because test.regrtest runs all tests in a > single process. In the discussion linked above, the particular culprit > test_all was judged as a candidate to be moved to a subprocess._ > > I want to propose adding a capability to our test harness to run > specific tests in subprocesses. Each test will have some simple way of > asking to be run in a subprocess, and regrtest will concur (even when > running -j1). test_all can go there, and it can help solve other_ > problems. > > My particular case is trying to write a test for > http://bugs.python.org/issue14988 - wherein I have to simulate a > situation of non-existent pyexpat. It's not hard to write a test for > it, but when run in tandem with other tests (where C extensions loaded > pyexpat) it becomes seemingly impossible to set up. This should not be > the case - there's nothing wrong with wanting to simulate this case, > and there's nothing wrong in Python and the stdlib - it's purely an > artifact of the way our regression suite works. > > Thoughts? > > Eli

FWIW the problem is also discussed here: http://bugs.python.org/issue1674555, w.r.t. testsite Can't you just launch a subprocess from the test itself using scripthelpers?

[sorry, sent privately by mistake; forwarding to pydev]

I can, but such launching will be necessarily duplicated across all tests that need this functionality (test_site, test___all__, etc). Since regrtest already has functionality for launching whole test-suites in subprocesses, it makes sense to reuse it, no?

Eli



More information about the Python-Dev mailing list