does concurrency work anymore?
Mark Eichin
eichin at metacarta.com
Tue Jan 14 19:27:41 UTC 2003
I noticed this with a larger test using my own code, thought it might
be my own tests, but then cooked it down to this case using only the
built-in command.ExecTest and figured I should check with others:
Basically, a setting of concurrency N causes N tests to run, and then
hang things hang. This is on Debian linux, python 2.2, qmtest 2.0x
(from CVS but most if not all of the way to 2.0.2.) A quick strace
was unenlightening (the last thing a child does is a chdir and then:
5277 rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP 33], 8) = 0
5277 rt_sigsuspend(~[KILL STOP RTMIN 33] <unfinished ...>
which is something clone/thread releated.) Does it work on other
platforms, or for other people? I've supplied below the command line
and the tests (basically, foo becomes foo1, foo2 etc to make the
concurrency-n tests distinct, but I doubt that is needed...)
maneki-neko$ qmtest run -j2 -f full concurrency-1 concurrency-2 concurrency-3 concurrency-4 concurrency-5
--- TEST RESULTS -------------------------------------------------------------
concurrency-1 : PASS
concurrency-2 : PASS
--- STATISTICS ---------------------------------------------------------------
2 tests total
2 (100%) tests PASS
qmtest: Interrupted.
Test concurrency-1
Class: command.ExecTest
Check a program's output and exit code. Help
Arguments
Program echo Help
Argument List foo Help
Standard Input Help
Environment None Help
Exit Code 0 Help
Standard Output foo Help
Standard Error Help
Target Group Pattern .* Help
Prerequisite Tests None Help
Resources None Help
maneki-neko$ more concurrency-?.qmt | cat
::::::::::::::
concurrency-1.qmt
::::::::::::::
<?xml version="1.0" ?>
<!DOCTYPE extension
PUBLIC '-//Software Carpentry//QMTest Extension V0.1//EN'
'http://www.software-carpentry.com/qm/xml/extension'>
<extension class="command.ExecTest" kind="test"><argument name="environment"><set/></argument><argument name="program"><text>echo</text></argument><argument name="resources"><set/></argument><argument name="arguments"><set><text>foo</text></set></argument><argument name="stderr"><text/></argument><argument name="stdout"><text>foo
</text></argument><argument name="prerequisites"><set/></argument><argument name="stdin"><text/></argument><argument name="exit_code"><integer>0</integer></argument><argument name="target_group"><text>.*</text></argument></extension>::::::::::::::
concurrency-2.qmt
::::::::::::::
<?xml version="1.0" ?>
<!DOCTYPE extension
PUBLIC '-//Software Carpentry//QMTest Extension V0.1//EN'
'http://www.software-carpentry.com/qm/xml/extension'>
<extension class="command.ExecTest" kind="test"><argument name="environment"><set/></argument><argument name="program"><text>echo</text></argument><argument name="resources"><set/></argument><argument name="arguments"><set><text>foo2</text></set></argument><argument name="stderr"><text/></argument><argument name="stdout"><text>foo2
</text></argument><argument name="prerequisites"><set/></argument><argument name="stdin"><text/></argument><argument name="exit_code"><integer>0</integer></argument><argument name="target_group"><text>.*</text></argument></extension>::::::::::::::
concurrency-3.qmt
::::::::::::::
<?xml version="1.0" ?>
<!DOCTYPE extension
PUBLIC '-//Software Carpentry//QMTest Extension V0.1//EN'
'http://www.software-carpentry.com/qm/xml/extension'>
<extension class="command.ExecTest" kind="test"><argument name="environment"><set/></argument><argument name="program"><text>echo</text></argument><argument name="resources"><set/></argument><argument name="arguments"><set><text>foo3</text></set></argument><argument name="stderr"><text/></argument><argument name="stdout"><text>foo3
</text></argument><argument name="prerequisites"><set/></argument><argument name="stdin"><text/></argument><argument name="exit_code"><integer>0</integer></argument><argument name="target_group"><text>.*</text></argument></extension>::::::::::::::
concurrency-4.qmt
::::::::::::::
<?xml version="1.0" ?>
<!DOCTYPE extension
PUBLIC '-//Software Carpentry//QMTest Extension V0.1//EN'
'http://www.software-carpentry.com/qm/xml/extension'>
<extension class="command.ExecTest" kind="test"><argument name="environment"><set/></argument><argument name="program"><text>echo</text></argument><argument name="resources"><set/></argument><argument name="arguments"><set><text>foo4</text></set></argument><argument name="stderr"><text/></argument><argument name="stdout"><text>foo4
</text></argument><argument name="prerequisites"><set/></argument><argument name="stdin"><text/></argument><argument name="exit_code"><integer>0</integer></argument><argument name="target_group"><text>.*</text></argument></extension>
::::::::::::::
concurrency-5.qmt
::::::::::::::
<?xml version="1.0" ?>
<!DOCTYPE extension
PUBLIC '-//Software Carpentry//QMTest Extension V0.1//EN'
'http://www.software-carpentry.com/qm/xml/extension'>
<extension class="command.ExecTest" kind="test"><argument name="environment"><set/></argument><argument name="program"><text>echo</text></argument><argument name="resources"><set/></argument><argument name="arguments"><set><text>foo5</text></set></argument><argument name="stderr"><text/></argument><argument name="stdout"><text>foo5
</text></argument><argument name="prerequisites"><set/></argument><argument name="stdin"><text/></argument><argument name="exit_code"><integer>0</integer></argument><argument name="target_group"><text>.*</text></argument></extension>
More information about the qmtest
mailing list