Merge lp:~gz/bzr/parallel_fork_broken_child_804130 into lp:bzr
Status: | Merged |
---|---|
Approved by: | Jelmer Vernooij |
Approved revision: | no longer in the source branch. |
Merged at revision: | 6229 |
Proposed branch: | lp:~gz/bzr/parallel_fork_broken_child_804130 |
Merge into: | lp:bzr |
Prerequisite: | lp:~gz/bzr/trivial_cleanup_testcases_release_notes |
Diff against target: |
198 lines (+79/-43) 3 files modified
bzrlib/tests/__init__.py (+13/-9) bzrlib/tests/test_selftest.py (+63/-34) doc/en/release-notes/bzr-2.5.txt (+3/-0) |
To merge this branch: | bzr merge lp:~gz/bzr/parallel_fork_broken_child_804130 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jelmer Vernooij (community) | Approve | ||
Review via email: mp+79674@code.launchpad.net |
Commit message
Report child process exceptions from selftest --parallel=fork
Description of the change
Makes breakage in a selftest --parallel=fork child visible by printing the traceback to the child-to-parent stream if possible, rather than silently exiting with a success code. This is mostly useful when working on selftest code, as otherwise when something breaks it reports "0 tests OK" which takes some remembering to know it actually means the world broke. Now at least, it should be preceded by two plus tracebacks from the child processes, so will look different from the usual case of having misspelt a test subset.
I pulled some of the hacky code out of the TestUncollected
Finally, it would be nice to actually do something in the parent process if the child finishes with a non-zero status. It's no good raising an exception, because it just gets caught in the subthread, so short of creating another fake test case just to fail and appear in the output I'm not sure what.
A fake test in the output seems sane to me. Or - you know all the
tests that were intended to run, you could make them all fail ('not
executed by <...>')