annotate tests/test-issue1102.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 805419729e11
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11847
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
1 $ rm -rf a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
2 $ hg init a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
3 $ cd a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
4 $ echo a > a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
5 $ hg ci -Am0
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
6 adding a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
7 $ hg tag t1 # 1
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
8 $ hg tag --remove t1 # 2
6671
938eddd76237 tag: record tag we're superseding, if any (issue 1102)
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
9
11847
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
10 $ hg co 1
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
11 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
13135
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 11847
diff changeset
12 $ hg tag -f -r0 t1
11847
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
13 $ hg tags
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
14 tip 3:a49829c4fc11
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
15 t1 0:f7b1eb17ad24
6671
938eddd76237 tag: record tag we're superseding, if any (issue 1102)
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
16
49518
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
17 Ensure that the username access fails gracefully if assumptions about the
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
18 environment made by python do not hold.
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
19
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
20 #if windows
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
21 >>> import os
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
22 >>> from mercurial import util
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
23 >>> os.environ.pop('LOGNAME', None) and None
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
24 >>> os.environ.pop('USER', None) and None
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
25 >>> os.environ.pop('LNAME', None) and None
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
26 >>> os.environ.pop('USERNAME', None) and None
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
27 >>> print(util.username())
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
28 None
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
29 #endif
805419729e11 windows: gracefully handle when the username cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 28251
diff changeset
30
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13135
diff changeset
31 $ cd ..