#11615 closed (fixed)
./manage.py test returns incorrect status code if more than 255 bugs fail
Reported by: | Chris Lamb | Owned by: | Gary Wilson |
---|---|---|---|
Component: | Testing framework | Version: | |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The Django test runner currently calls "sys.exit(number_of_failed_tests)" when finished. However, as exit codes under UNIX (etc.) systems are unsigned chars, if n % 256 == 0 bugs fail (where n > 0) the exit code for the program is 0 - ie. incorrectly denoting a "successful" build run.
A more general problem exists where, if n > 256 bugs fail, the exit code is actually modulus 256 the number of failed tests.
A patch is attached which normalises the values to either 0 and 1 on success and failure respectfully - we cannot return the number in this manner, so let's not pretend to.
Attachments (1)
Change History (8)
by , 15 years ago
Attachment: | test-runner-exit-status.diff added |
---|
comment:1 by , 15 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:2 by , 15 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
comment:3 by , 15 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [12068]) Fixed #11615 -- Changed test runners to use an exit status code of 1 for any number of failed tests. The previous behavior of using an exit status code equal to the number of failed tests produced incorrect exit status codes when the number of test failures was 256 or greater. Thanks to lamby for the report and patch.
comment:5 by , 15 years ago
(In [12069]) [1.1.X] Fixed #11615 -- Changed test runners to use an exit status code of 1 for any number of failed tests. The previous behavior of using an exit status code equal to the number of failed tests produced incorrect exit status codes when the number of test failures was 256 or greater. Thanks to lamby for the report and patch.
Backport of r12068 from trunk.
Looks like we need to correct this on the
tests/runtests.py
runner as well, fix to follow.