Mercurial > hg-stable
annotate tests/test-revlog.t @ 36884:ccb70a77f746
hgweb: refactor 304 handling code
We had generic code in wsgirequest for handling HTTP 304 responses.
We also had a special case for it in the catch all exception handler
in the WSGI application.
We only ever raise 304 in one place. So, we don't need to treat it
specially in the catch all exception handler.
But it is useful to validate behavior of 304 responses. We port the
code that sends a 304 to use the new response API. We then move the
code for screening 304 sanity into the new response API.
As part of doing so, we discovered that we would send
Content-Length: 0. This is not allowed. So, we fix our response code
to not emit that header for empty response bodies.
Differential Revision: https://phab.mercurial-scm.org/D2794
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 10 Mar 2018 18:42:00 -0800 |
parents | 71d1bbf1617e |
children | 009d0283de5f |
rev | line source |
---|---|
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
1 $ hg init empty-repo |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
2 $ cd empty-repo |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
3 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
4 Flags on revlog version 0 are rejected |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
5 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
6 >>> with open('.hg/store/00changelog.i', 'wb') as fh: |
36514
71d1bbf1617e
py3: add b'' prefixes in tests/test-revlog.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32430
diff
changeset
|
7 ... fh.write(b'\x00\x01\x00\x00') |
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
8 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
9 $ hg log |
32430
36d3559c69a6
revlog: tweak wording and logic for flags validation
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32429
diff
changeset
|
10 abort: unknown flags (0x01) in version 0 revlog 00changelog.i! |
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
11 [255] |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
12 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
13 Unknown flags on revlog version 1 are rejected |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
14 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
15 >>> with open('.hg/store/00changelog.i', 'wb') as fh: |
36514
71d1bbf1617e
py3: add b'' prefixes in tests/test-revlog.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32430
diff
changeset
|
16 ... fh.write(b'\x00\x04\x00\x01') |
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
17 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
18 $ hg log |
32430
36d3559c69a6
revlog: tweak wording and logic for flags validation
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32429
diff
changeset
|
19 abort: unknown flags (0x04) in version 1 revlog 00changelog.i! |
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
20 [255] |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
21 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
22 Unknown version is rejected |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
23 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
24 >>> with open('.hg/store/00changelog.i', 'wb') as fh: |
36514
71d1bbf1617e
py3: add b'' prefixes in tests/test-revlog.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32430
diff
changeset
|
25 ... fh.write(b'\x00\x00\x00\x02') |
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
26 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
27 $ hg log |
32430
36d3559c69a6
revlog: tweak wording and logic for flags validation
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32429
diff
changeset
|
28 abort: unknown version (2) in revlog 00changelog.i! |
32429
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
29 [255] |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
30 |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
31 $ cd .. |
3ea1f1e71a0a
tests: tests for revlog version and flags loading
Gregory Szorc <gregory.szorc@gmail.com>
parents:
32410
diff
changeset
|
32 |
28656
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
33 Test for CVE-2016-3630 |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
34 |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
35 $ hg init |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
36 |
36514
71d1bbf1617e
py3: add b'' prefixes in tests/test-revlog.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32430
diff
changeset
|
37 >>> open("a.i", "wb").write( |
71d1bbf1617e
py3: add b'' prefixes in tests/test-revlog.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32430
diff
changeset
|
38 ... b"""eJxjYGZgZIAAYQYGxhgom+k/FMx8YKx9ZUaKSOyqo4cnuKb8mbqHV5cBCVTMWb1Cwqkhe4Gsg9AD |
28656
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
39 ... Joa3dYtcYYYBAQ8Qr4OqZAYRICPTSr5WKd/42rV36d+8/VmrNpv7NP1jQAXrQE4BqQUARngwVA==""" |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
40 ... .decode("base64").decode("zlib")) |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
41 |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
42 $ hg debugindex a.i |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
43 rev offset length delta linkrev nodeid p1 p2 |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
44 0 0 19 -1 2 99e0332bd498 000000000000 000000000000 |
b6ed2505d6cf
parsers: fix list sizing rounding error (SEC)
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
45 1 19 12 0 3 6674f57a23d8 99e0332bd498 000000000000 |
28782
f736f98e16ca
mpatch: unify mpatchError (issue5182)
timeless <timeless@mozdev.org>
parents:
28656
diff
changeset
|
46 $ hg debugdata a.i 1 2>&1 | egrep 'Error:.*decoded' |
32410
151cc3b3d799
mpatch: switch to policy importer
Yuya Nishihara <yuya@tcha.org>
parents:
28783
diff
changeset
|
47 (mercurial\.\w+\.mpatch\.)?mpatchError: patch cannot be decoded (re) |