Merge lp://qastaging/~vila/selenium-simple-test/parallel into lp://qastaging/selenium-simple-test

Proposed by Vincent Ladeuil
Status: Superseded
Proposed branch: lp://qastaging/~vila/selenium-simple-test/parallel
Merge into: lp://qastaging/selenium-simple-test
Prerequisite: lp://qastaging/~coreygoldberg/selenium-simple-test/concurrent-tests1
Diff against target: 2046 lines (+699/-558)
28 files modified
docs/README (+6/-3)
docs/changelog.rst (+4/-4)
docs/index.rst (+16/-9)
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 (+11/-6)
src/sst/concurrency.py (+34/-19)
src/sst/results.py (+13/-14)
src/sst/runtests.py (+17/-21)
src/sst/scripts/run.py (+1/-1)
src/sst/scripts/test.py (+3/-3)
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 (+109/-314)
src/sst/tests/test_django_devserver.py (+18/-14)
src/sst/tests/test_loaders.py (+17/-17)
src/sst/tests/test_results.py (+239/-105)
src/sst/tests/test_runtests.py (+2/-2)
src/sst/tests/test_sst_run.py (+0/-3)
src/sst/xvfbdisplay.py (+1/-1)
tox-acceptance.ini (+0/-4)
To merge this branch: bzr merge lp://qastaging/~vila/selenium-simple-test/parallel
Reviewer Review Type Date Requested Status
Corey Goldberg (community) Approve
Review via email: mp+173254@code.qastaging.launchpad.net

This proposal has been superseded by a proposal from 2013-07-08.

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.

To post a comment you must log in.
Revision history for this message
Corey Goldberg (coreygoldberg) :
review: Approve
Revision history for this message
Ubuntu One Auto Pilot (otto-pilot) wrote :
Revision history for this message
Ubuntu One Auto Pilot (otto-pilot) wrote :
504. By Vincent Ladeuil

Merge trunk resolving conflicts

505. By Vincent Ladeuil

Fix TestSubunitOutput failures related to the traceback length.

506. By Vincent Ladeuil

Use a better name for expand_template_for_test.

507. By Vincent Ladeuil

Make sure we don't get spurious failures when the get_case() function is moved inside its file leading to different line numbers in errors/failures.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches