author | Patrick Mezard <pmezard@gmail.com> |
Sun, 21 Jun 2009 23:04:02 +0200 | |
changeset 8884 | 8b603c7c808e |
parent 8245 | 0eade101f762 |
child 9184 | f6eb03027411 |
permissions | -rwxr-xr-x |
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
1 |
#!/bin/sh |
5580
f429e0e067a8
Fix style nit and add some comments to tests.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5578
diff
changeset
|
2 |
# Tests some basic hgwebdir functionality. Tests setting up paths and |
f429e0e067a8
Fix style nit and add some comments to tests.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5578
diff
changeset
|
3 |
# collection, different forms of 404s and the subdirectory support. |
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
4 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
5 |
mkdir webdir |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
6 |
cd webdir |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
7 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
8 |
hg init a |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
9 |
echo a > a/a |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
10 |
hg --cwd a ci -Ama -d'1 0' |
7523
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
11 |
# create a mercurial queue repository |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
12 |
hg --cwd a qinit --config extensions.hgext.mq= -c |
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
13 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
14 |
hg init b |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
15 |
echo b > b/b |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
16 |
hg --cwd b ci -Amb -d'2 0' |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
17 |
|
7523
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
18 |
# create a nested repository |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
19 |
cd b |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
20 |
hg init d |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
21 |
echo d > d/d |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
22 |
hg --cwd d ci -Amd -d'3 0' |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
23 |
cd .. |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
24 |
|
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
25 |
hg init c |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
26 |
echo c > c/c |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
27 |
hg --cwd c ci -Amc -d'3 0' |
7523
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
28 |
|
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7450
diff
changeset
|
29 |
root=`pwd` |
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
30 |
cd .. |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
31 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
32 |
cat > paths.conf <<EOF |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
33 |
[paths] |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
34 |
a=$root/a |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
35 |
b=$root/b |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
36 |
EOF |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
37 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
38 |
hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf paths.conf \ |
5601
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
39 |
-A access-paths.log -E error-paths-1.log |
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
40 |
cat hg.pid >> $DAEMON_PIDS |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
41 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
42 |
echo % should give a 404 - file does not exist |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
43 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/bork?style=raw' |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
44 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
45 |
echo % should succeed |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
46 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw' |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
47 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/a?style=raw' |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
48 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/b/file/tip/b?style=raw' |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
49 |
|
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
50 |
echo % should give a 404 - repo is not published |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
51 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/c/file/tip/c?style=raw' |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
52 |
|
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
53 |
cat > paths.conf <<EOF |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
54 |
[paths] |
5586
b90b72729a72
hgwebdir: test virtual paths leading or trailing separators are stripped
Patrick Mezard <pmezard@gmail.com>
parents:
5580
diff
changeset
|
55 |
t/a/=$root/a |
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
56 |
b=$root/b |
7450
79d1bb737c16
hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents:
7202
diff
changeset
|
57 |
coll=$root/* |
7523
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
58 |
rcoll=$root/** |
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
59 |
EOF |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
60 |
|
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
61 |
hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \ |
5601
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
62 |
-A access-paths.log -E error-paths-2.log |
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
63 |
cat hg.pid >> $DAEMON_PIDS |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
64 |
|
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
65 |
echo % should succeed, slashy names |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
66 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw' |
8217
d895158fe8af
tests: add tests for styled hgwebdir pages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
7523
diff
changeset
|
67 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=paper' \ |
8245
0eade101f762
Don't use sed -r; instead use old-style regexp
Martijn Pieters <mj@zopatista.com>
parents:
8217
diff
changeset
|
68 |
| sed "s/[0-9]\{1,\} seconds\{0,1\} ago/seconds ago/" |
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
69 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t?style=raw' |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
70 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw' |
8217
d895158fe8af
tests: add tests for styled hgwebdir pages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
7523
diff
changeset
|
71 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=paper' \ |
8245
0eade101f762
Don't use sed -r; instead use old-style regexp
Martijn Pieters <mj@zopatista.com>
parents:
8217
diff
changeset
|
72 |
| sed "s/[0-9]\{1,\} seconds\{0,1\} ago/seconds ago/" |
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
73 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a?style=atom' \ |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
74 |
| sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
75 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/?style=atom' \ |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
76 |
| sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
77 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/file/tip/a?style=raw' |
7450
79d1bb737c16
hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents:
7202
diff
changeset
|
78 |
# Test [paths] '*' extension |
79d1bb737c16
hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents:
7202
diff
changeset
|
79 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/?style=raw' |
79d1bb737c16
hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents:
7202
diff
changeset
|
80 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/a/file/tip/a?style=raw' |
7523
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
81 |
#test [paths] '**' extension |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
82 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/?style=raw' |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
83 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/b/d/file/tip/d?style=raw' |
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
84 |
|
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
85 |
|
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
86 |
cat > collections.conf <<EOF |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
87 |
[collections] |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
88 |
$root=$root |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
89 |
EOF |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
90 |
|
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
91 |
hg serve -p $HGPORT2 -d --pid-file=hg.pid --webdir-conf collections.conf \ |
5561
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
92 |
-A access-collections.log -E error-collections.log |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
93 |
cat hg.pid >> $DAEMON_PIDS |
22713dce19f6
hgweb: return meaningful HTTP status codes instead of nonsense
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
94 |
|
7523
e60aaae83323
hgweb: recurse down collections only if ** in [paths]
Benoit Allard <benoit@aeteurope.nl>
parents:
7494
diff
changeset
|
95 |
echo % collections: should succeed |
5578
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
96 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw' |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
97 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/file/tip/a?style=raw' |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
98 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/b/file/tip/b?style=raw' |
733b50883f73
Add tests for hgwebdir repository names with slashes in them.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5561
diff
changeset
|
99 |
"$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/c/file/tip/c?style=raw' |
5601
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
100 |
|
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
101 |
echo % paths errors 1 |
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
102 |
cat error-paths-1.log |
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
103 |
echo % paths errors 2 |
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
104 |
cat error-paths-2.log |
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
105 |
echo % collections errors |
8279cb841467
hgwebdir: split out makeindex function, facilitate test failure diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
5586
diff
changeset
|
106 |
cat error-collections.log |