tests/test-debugcommands.t
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 28 Nov 2014 10:59:02 -0800
branchstable
changeset 23409 dc4d2cd3aa3e
parent 20543 01df3660eb11
child 23255 76effa770ff9
permissions -rw-r--r--
hgweb: send proper HTTP response after uncaught exception This patch fixes a bug where hgweb would send an incomplete HTTP response. If an uncaught exception is raised when hgweb is processing a request, hgweb attempts to send a generic error response and log that exception. The server defaults to chunked transfer coding. If an uncaught exception occurred, it was sending the error response string / chunk properly. However, RFC 7230 Section 4.1 mandates a 0 size last chunk be sent to indicate end of the entity body. hgweb was failing to send this last chunk. As a result, properly written HTTP clients would assume more data was coming and they would likely time out waiting for another chunk to arrive. Mercurial's own test harness was paving over the improper HTTP behavior by not attempting to read the response body if the status code was 500. This incorrect workaround was added in ba6577a19656 and has been removed with this patch.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17188
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     1
  $ hg init debugrevlog
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     2
  $ cd debugrevlog
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     3
  $ echo a > a
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     4
  $ hg ci -Am adda
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     5
  adding a
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     6
  $ hg debugrevlog -m
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     7
  format : 1
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     8
  flags  : inline
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
     9
  
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    10
  revisions     :  1
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    11
      merges    :  0 ( 0.00%)
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    12
      normal    :  1 (100.00%)
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    13
  revisions     :  1
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    14
      full      :  1 (100.00%)
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    15
      deltas    :  0 ( 0.00%)
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    16
  revision size : 44
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    17
      full      : 44 (100.00%)
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    18
      deltas    :  0 ( 0.00%)
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    19
  
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    20
  avg chain length  : 0
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    21
  compression ratio : 0
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    22
  
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    23
  uncompressed data size (min/max/avg) : 43 / 43 / 43
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    24
  full revision size (min/max/avg)     : 44 / 44 / 44
76e55914c303 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
    25
  delta size (min/max/avg)             : 0 / 0 / 0
20244
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    26
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    27
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    28
Test internal debugstacktrace command
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    29
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    30
  $ cat > debugstacktrace.py << EOF
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    31
  > from mercurial.util import debugstacktrace, dst, sys
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    32
  > def f():
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    33
  >     dst('hello world')
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    34
  > def g():
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    35
  >     f()
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    36
  >     debugstacktrace(skip=-5, f=sys.stdout)
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    37
  > g()
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    38
  > EOF
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    39
  $ python debugstacktrace.py
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    40
  hello world at:
20543
01df3660eb11 tests: backout a82de9dc4f77, debugstacktrace is now stable, drop workaround
Mads Kiilerich <madski@unity3d.com>
parents: 20382
diff changeset
    41
   debugstacktrace.py:7 in * (glob)
20244
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    42
   debugstacktrace.py:5 in g
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    43
   debugstacktrace.py:3 in f
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    44
  stacktrace at:
20543
01df3660eb11 tests: backout a82de9dc4f77, debugstacktrace is now stable, drop workaround
Mads Kiilerich <madski@unity3d.com>
parents: 20382
diff changeset
    45
   debugstacktrace.py:7 *in * (glob)
01df3660eb11 tests: backout a82de9dc4f77, debugstacktrace is now stable, drop workaround
Mads Kiilerich <madski@unity3d.com>
parents: 20382
diff changeset
    46
   debugstacktrace.py:6 *in g (glob)
20244
47d0843647d1 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com>
parents: 17188
diff changeset
    47
   */util.py:* in debugstacktrace (glob)