Mercurial > hg
annotate tests/test-remotefilelog-hgweb.t @ 50400:95acba2c29f6
encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
Apparently the code uses "+=" with a bytes object, which is linear-time, so the
whole encoding is quadratic-time. This patch makes us use a bytearray object,
instead, which has a(n amortized-)constant-time append operation.
The encoding is still not particularly fast, but at least a 10MB file
takes tens of seconds, not many hours to encode.
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 06 Mar 2023 11:27:57 +0000 |
parents | 9e63108123a4 |
children |
rev | line source |
---|---|
44569
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 #require no-windows serve |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 $ . "$TESTDIR/remotefilelog-library.sh" |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 $ cat >> $HGRCPATH <<EOF |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 > [extensions] |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 > remotefilelog= |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 > share= |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
9 > EOF |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 $ hg init master |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 $ cd master |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 $ cat >> .hg/hgrc <<EOF |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 > [remotefilelog] |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 > server=True |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 > EOF |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 $ echo x > x |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
18 $ hg commit -qAm x |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
19 |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
20 $ cd .. |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
23 $ hgcloneshallow ssh://user@dummy/master wdir --noupdate -q |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
24 $ cd wdir |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
25 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log |
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
26 $ cat hg.pid >> $DAEMON_PIDS |
44570
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
27 $ get-with-headers.py localhost:$HGPORT 'file/tip/x' | head -n 10 |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
28 200 Script output follows |
44569
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
29 |
44570
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
30 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
31 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
32 <head> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
33 <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
34 <meta name="robots" content="index, nofollow" /> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
35 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
36 <script type="text/javascript" src="/static/mercurial.js"></script> |
9e63108123a4
remotefilelog: add fake heads() method that allows viewing a file in hgweb
Augie Fackler <augie@google.com>
parents:
44569
diff
changeset
|
37 |
44569
5483e9c759e4
tests: add test for remotefilelog interactions with hgweb
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
38 |