Mercurial > hg
annotate tests/test-archive-symlinks.t @ 37047:fddcb51b5084
wireproto: define permissions-based routing of HTTPv2 wire protocol
Now that we have a scaffolding for serving version 2 of the HTTP
protocol, let's start implementing it.
A good place to start is URL routing and basic request processing
semantics. We can focus on content types, capabilities detect, etc
later.
Version 2 of the HTTP wire protocol encodes the needed permissions
of the request in the URL path. The reasons for this are documented
in the added documentation. In short, a) it makes it really easy and
fail proof for server administrators to implement path-based
authentication and b) it will enable clients to realize very early in
a server exchange that authentication will be required to complete
the operation. This latter point avoids all kinds of complexity and
problems, like dealing with Expect: 100-continue and clients finding
out later during `hg push` that they need to provide authentication.
This will avoid the current badness where clients send a full bundle,
get an HTTP 403, provide authentication, then retransmit the bundle.
In order to implement command checking, we needed to implement a
protocol handler for the new wire protocol. Our handler is just
small enough to run the code we've implemented.
Tests for the defined functionality have been added.
I very much want to refactor the permissions checking code and define
a better response format. But this can be done later. Nothing is
covered by backwards compatibility at this point.
Differential Revision: https://phab.mercurial-scm.org/D2836
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 19 Mar 2018 16:43:47 -0700 |
parents | c4d03b6d9576 |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
21216
diff
changeset
|
1 #require symlink |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
2 |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
3 $ origdir=`pwd` |
4831
6f08bc1bd00b
archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
4 |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
5 $ hg init repo |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
6 $ cd repo |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
7 $ ln -s nothing dangling |
4831
6f08bc1bd00b
archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
8 |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
9 avoid tar warnings about old timestamp |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
10 |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
11 $ hg ci -d '2000-01-01 00:00:00 +0000' -qAm 'add symlink' |
4831
6f08bc1bd00b
archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
12 |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
13 $ hg archive -t files ../archive |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
14 $ hg archive -t tar -p tar ../archive.tar |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
15 $ hg archive -t zip -p zip ../archive.zip |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
16 |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
17 files |
4831
6f08bc1bd00b
archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
18 |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
19 $ cd "$origdir" |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
20 $ cd archive |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
21 $ readlink.py dangling |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
22 dangling -> nothing |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
23 |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
24 tar |
4831
6f08bc1bd00b
archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
25 |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
26 $ cd "$origdir" |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
27 $ tar xf archive.tar |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
28 $ cd tar |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
29 $ readlink.py dangling |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
30 dangling -> nothing |
4831
6f08bc1bd00b
archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
31 |
29844
c4d03b6d9576
tests: guard test-archive-symlink with unziplinks check
Augie Fackler <augie@google.com>
parents:
25472
diff
changeset
|
32 #if unziplinks |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
33 zip |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
34 |
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
35 $ cd "$origdir" |
21216
6d632cf8a811
tests: suppress spurious lchmod error from unzip (issue4088)
Matt Mackall <mpm@selenic.com>
parents:
16913
diff
changeset
|
36 $ unzip archive.zip > /dev/null 2>&1 |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
37 $ cd zip |
25472
4d2b9b304ad0
tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents:
22046
diff
changeset
|
38 $ readlink.py dangling |
11854
aa2abde72da1
tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents:
5683
diff
changeset
|
39 dangling -> nothing |
29844
c4d03b6d9576
tests: guard test-archive-symlink with unziplinks check
Augie Fackler <augie@google.com>
parents:
25472
diff
changeset
|
40 #endif |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
41 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
42 $ cd .. |