Merge lp://qastaging/~vila/selenium-simple-test/parallel into lp://qastaging/selenium-simple-test
Status: | Merged |
---|---|
Merged at revision: | 425 |
Proposed branch: | lp://qastaging/~vila/selenium-simple-test/parallel |
Merge into: | lp://qastaging/selenium-simple-test |
Diff against target: |
1812 lines (+906/-216) 27 files modified
docs/README (+6/-3) docs/changelog.rst (+4/-0) docs/index.rst (+21/-16) requirements.txt (+1/-0) src/sst/__init__.py (+1/-1) src/sst/actions.py (+2/-1) src/sst/browsers.py (+101/-1) src/sst/cases.py (+14/-3) src/sst/command.py (+17/-11) src/sst/concurrency.py (+129/-0) src/sst/results.py (+8/-6) src/sst/runtests.py (+30/-23) src/sst/scripts/run.py (+1/-0) src/sst/scripts/test.py (+3/-2) src/sst/selftests/regular/__init__.py (+4/-4) src/sst/selftests/shared/__init__.py (+2/-2) src/sst/selftests/shared/helpers.py (+0/-1) src/sst/selftests/yui.py (+7/-0) src/sst/tests/__init__.py (+64/-3) src/sst/tests/test_actions.py (+1/-1) src/sst/tests/test_command.py (+12/-1) src/sst/tests/test_concurrency.py (+211/-0) src/sst/tests/test_django_devserver.py (+18/-14) src/sst/tests/test_loaders.py (+17/-17) src/sst/tests/test_results.py (+229/-103) src/sst/tests/test_runtests.py (+2/-2) src/sst/xvfbdisplay.py (+1/-1) |
To merge this branch: | bzr merge lp://qastaging/~vila/selenium-simple-test/parallel |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Łukasz Czyżykowski (community) | Approve | ||
Vincent Ladeuil (community) | Approve | ||
Corey Goldberg | Pending | ||
Review via email:
|
This proposal supersedes a proposal from 2013-07-05.
Commit message
Fix a bunch of issues with concurrent tests including a workaround for selenium hanging firefox, profile leaks under /tmp, xvfb leaks and then some.
Description of the change
Lots of issues fixed here, in the end, I've been able to reliably run the whole test suite with '--concurrency 8' in < 30s \o/
This includes:
* adding back TestInOtherProcess, this is strictly required to avoid leaving
zombies behind (why did you remove it ?),
* renaming sst.result and sst.loader into sst.results and sst.loaders for
consistency with sst.cases, sst.filters and friends (the rationale is that
once a module is imported, no local variable can use the same name and it
hurts),
* restore some doc modifications (mistakenly removed ?),
* fix profile leaks: when selenium failed to connect to the extension in
firefox, the profile wasn't cleaned up,
* fix xvfb leaks (the .Xnnnn-lock was left under /tmp) because we killed the
process instead of terminating it,
* add a workaround for selenium failing to properly connect to the extension
under load (at least 'load' is my best theory so far), there may be a
better fix to propose upstream but let's experiment with this one here,
* simplify the tests about concurrency (mostly getting rid of the discover()
calls),
* add integration tests for subunit to make sure we properly support it,
covering all the supported kind of tests,
* document a spurious failure for yui.py,
* add a '-c' shortcut for --concurrency.
Note that this proposal requires
lp:~coreygoldberg/selenium-simple-test/concurrent-tests1 so be careful when
reviewing (I suspect the conflicts are caused by lp getting confused between
the pre-requisite and the target).
Finally, I still feel that we miss some tests for robustness against
processes spawn by tests and hanging, making the tests themseleves hang and
so on. But I couldn't find a good way to write them :-/
In essence, when such a hang occurs, the whole sst-test run hangs and
diagnosing is insane. Having refreshed my memory a bit on this topic, I now
remember that I fixed a bunch of such cases for bzr... may be I should file
a bug about that to not forget.
The prerequisite https:/ /code.launchpad .net/~coreygold berg/selenium- simple- test/concurrent -tests1 has not yet been merged into https:/ /code.launchpad .net/~canonical -isd-qa/ selenium- simple- test/trunk.