This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
( )
| Alphare |
| hg-reviewers |
This specific test case is now using the new "close when a pattern is seen"
approach compared to the more fragile "that many bytes were sent" approach.
Since such change are still a bit noisy, we split each change in there own
changesets.
| No Linters Available |
| No Unit Test Coverage |
| Path | Packages | |||
|---|---|---|---|---|
| M | tests/test-http-bad-server.t (20 lines) |
| Commit | Parents | Author | Summary | Date |
|---|---|---|---|---|
| 4d3e8459f54f | c096d0d7bd61 | Pierre-Yves David | Jan 21 2022, 9:44 AM |
| write(286) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !) | write(286) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\nHTTP/1.1 500 Internal Server Error\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nTransfer-Encoding: chunked\r\n\r\n (py3 no-py36 !) | ||||
| $ rm -f error.log | $ rm -f error.log | ||||
| Server sends an incomplete capabilities response body | Server sends an incomplete capabilities response body | ||||
| ----------------------------------------------------- | ----------------------------------------------------- | ||||
| $ hg serve --config badserver.close-after-send-bytes=180 -p $HGPORT -d --pid-file=hg.pid -E error.log | $ hg serve \ | ||||
| > --config badserver.close-after-send-patterns='batch branchmap bund' \ | |||||
| > -p $HGPORT -d --pid-file=hg.pid -E error.log | |||||
| $ cat hg.pid > $DAEMON_PIDS | $ cat hg.pid > $DAEMON_PIDS | ||||
| $ hg clone http://localhost:$HGPORT/ clone | $ hg clone http://localhost:$HGPORT/ clone | ||||
| abort: HTTP request error (incomplete response; expected 431 bytes got 20) | abort: HTTP request error (incomplete response; expected 431 bytes got 20) | ||||
| (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator) | (this may be an intermittent network failure; if the error persists, consider contacting the network or server operator) | ||||
| [255] | [255] | ||||
| $ killdaemons.py $DAEMON_PIDS | $ killdaemons.py $DAEMON_PIDS | ||||
| $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py | $ cat error.log | "$PYTHON" $TESTDIR/filtertraceback.py | ||||
| readline(~) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n | readline(~) -> (33) GET /?cmd=capabilities HTTP/1.1\r\n | ||||
| readline(*) -> (27) Accept-Encoding: identity\r\n (glob) | readline(*) -> (27) Accept-Encoding: identity\r\n (glob) | ||||
| readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob) | readline(*) -> (35) accept: application/mercurial-0.1\r\n (glob) | ||||
| readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob) | readline(*) -> (2?) host: localhost:$HGPORT\r\n (glob) | ||||
| readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob) | readline(*) -> (49) user-agent: mercurial/proto-1.0 (Mercurial 4.2)\r\n (glob) | ||||
| readline(*) -> (2) \r\n (glob) | readline(*) -> (2) \r\n (glob) | ||||
| sendall(160 from 160) -> (20) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !) | sendall(160) -> HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py36 !) | ||||
| sendall(20 from 431) -> (0) batch branchmap bund (py36 !) | sendall(20 from 431) -> (0) batch branchmap bund (py36 !) | ||||
| write(160 from 160) -> (20) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py3 no-py36 !) | write(160) -> (20) HTTP/1.1 200 Script output follows\r\nServer: badhttpserver\r\nDate: $HTTP_DATE$\r\nContent-Type: application/mercurial-0.1\r\nContent-Length: 431\r\n\r\n (py3 no-py36 !) | ||||
| write(20 from 431) -> (0) batch branchmap bund (py3 no-py36 !) | write(20 from 431) -> (0) batch branchmap bund (py3 no-py36 !) | ||||
| write(36 from 36) -> (144) HTTP/1.1 200 Script output follows\r\n (no-py3 !) | write(36) -> HTTP/1.1 200 Script output follows\r\n (no-py3 !) | ||||
| write(23 from 23) -> (121) Server: badhttpserver\r\n (no-py3 !) | write(23) -> Server: badhttpserver\r\n (no-py3 !) | ||||
| write(37 from 37) -> (84) Date: $HTTP_DATE$\r\n (no-py3 !) | write(37) -> Date: $HTTP_DATE$\r\n (no-py3 !) | ||||
| write(41 from 41) -> (43) Content-Type: application/mercurial-0.1\r\n (no-py3 !) | write(41) -> Content-Type: application/mercurial-0.1\r\n (no-py3 !) | ||||
| write(21 from 21) -> (22) Content-Length: 431\r\n (no-py3 !) | write(21) -> Content-Length: 431\r\n (no-py3 !) | ||||
| write(2 from 2) -> (20) \r\n (no-py3 !) | write(2) -> \r\n (no-py3 !) | ||||
| write(20 from 431) -> (0) batch branchmap bund (no-py3 !) | write(20 from 431) -> (0) batch branchmap bund (no-py3 !) | ||||
| write limit reached; closing socket | write limit reached; closing socket | ||||
| $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob) | $LOCALIP - - [$ERRDATE$] Exception happened during processing request '/?cmd=capabilities': (glob) | ||||
| Traceback (most recent call last): | Traceback (most recent call last): | ||||
| Exception: connection closed after sending N bytes | Exception: connection closed after sending N bytes | ||||
| $ rm -f error.log | $ rm -f error.log | ||||