# HG changeset patch
# User Dan Drake <drake@kaist.edu>
# Date 1276663712 -32400
# Node ID 219d464b7b26bdc58f2b17a1e865254be06bf841
# Parent 0ccdd7fa8f576a961f4dc3ef904429fada914238
trac 9243: sage-doctest should use powers of 2 for return codes
diff --git a/sage-doctest b/sage-doctest
a
|
b
|
|
10 | 10 | # 0: all tests passed |
11 | 11 | # 1: file not found |
12 | 12 | # 2: KeyboardInterrupt |
13 | | # 3: doctest process was terminated by a signal |
14 | | # 4: the doctesting framework raised an exception |
15 | | # 100: failed doctests |
| 13 | # 4: doctest process was terminated by a signal |
| 14 | # 8: the doctesting framework raised an exception |
| 15 | # 16: script called with bad options |
| 16 | # 128: failed doctests |
16 | 17 | #################################################################### |
17 | 18 | |
18 | 19 | # System imports |
… |
… |
|
665 | 666 | out = outf.read() |
666 | 667 | e = proc.poll() |
667 | 668 | except KeyboardInterrupt: |
668 | | print "KeyboardInterrupt -- interrupted after %s seconds!" % (time.time()-tm) |
| 669 | print "KeyboardInterrupt -- interrupted after %.1f seconds!" % (time.time()-tm) |
669 | 670 | sys.exit(2) |
670 | 671 | if not verbose and 'raise KeyboardInterrupt' in err: |
671 | 672 | print "*"*80 + "Control-C pressed -- interrupting doctests." + "*"*80 |
… |
… |
|
682 | 683 | # The doctesting code raised an exception |
683 | 684 | if not verbose: |
684 | 685 | print "Exception raised by doctesting framework. Use -verbose for details." |
685 | | sys.exit(4) |
| 686 | sys.exit(8) |
686 | 687 | |
687 | 688 | if numfail == 0 and e > 0: |
688 | 689 | numfail = e |
689 | 690 | if numfail > 0: |
690 | 691 | if not (verbose or gdb or memcheck or massif or cachegrind): |
691 | 692 | print s |
692 | | sys.exit(100) |
| 693 | sys.exit(128) |
693 | 694 | elif e < 0: |
694 | 695 | if not verbose: |
695 | 696 | print "The doctested process was killed by signal %s" % (-e) |
696 | | sys.exit(3) |
| 697 | sys.exit(4) |
697 | 698 | else: |
698 | 699 | delete_tmpfiles() |
699 | 700 | sys.exit(0) |
… |
… |
|
756 | 757 | |
757 | 758 | def usage(): |
758 | 759 | print "\n\nUsage: sage-doctest [same options as sage -t] filenames" |
759 | | sys.exit(1) |
| 760 | sys.exit(16) |
760 | 761 | |
761 | 762 | if __name__ == '__main__': |
762 | 763 | import os, sys |
diff --git a/sage-ptest b/sage-ptest
a
|
b
|
|
136 | 136 | ol = result[3] |
137 | 137 | err = err | ret |
138 | 138 | if ret != 0: |
139 | | if ret == 100: |
| 139 | if ret == 128: |
140 | 140 | numfail = ol.count('Expected:') + ol.count('Expected nothing') + ol.count('Exception raised:') |
141 | 141 | failed.append(abs(F)+(" # %s doctests failed" % numfail)) |
142 | 142 | ret = numfail |
| 143 | elif ret == 8: |
| 144 | failed.append(abs(F)+" # Exception from doctest framework") |
143 | 145 | elif ret == 4: |
144 | | failed.append(abs(F)+" # Exception from doctest framework") |
145 | | elif ret == 3: |
146 | 146 | failed.append(abs(F)+" # Killed/crashed") |
147 | 147 | elif ret == 2: |
148 | 148 | failed.append(abs(F)+" # KeyboardInterrupt") |
diff --git a/sage-test b/sage-test
a
|
b
|
|
90 | 90 | elif err == 2: # process exit code 2: KeyboardInterrupt |
91 | 91 | failed.append(sage_test_command(F)+" # KeyboardInterrupt") |
92 | 92 | raise KeyboardInterrupt |
93 | | elif err == 3: # process exit code 3: Terminated by signal |
| 93 | elif err == 4: # process exit code 4: Terminated by signal |
94 | 94 | failed.append(sage_test_command(F)+" # Killed/crashed") |
95 | | elif err == 4: # process exit code 4: Unhandled doctest exception |
| 95 | elif err == 8: # process exit code 8: Unhandled doctest exception |
96 | 96 | failed.append(sage_test_command(F)+" # Exception from doctest framework") |
97 | | elif err == 100: # process exit code 100: Regular doctest failures |
| 97 | elif err == 128: # process exit code 128: Regular doctest failures |
98 | 98 | failed.append(sage_test_command(F)) |
99 | 99 | elif err != 0: |
100 | 100 | failed.append(sage_test_command(F)) |