annotate tests/test-empty-file.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 f2719b387380
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12159
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
1 $ hg init a
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
2 $ cd a
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
3 $ touch empty1
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
4 $ hg add empty1
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
5 $ hg commit -m 'add empty1'
3509
9de0e64545a3 Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
6
12159
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
7 $ touch empty2
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
8 $ hg add empty2
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
9 $ hg commit -m 'add empty2'
3509
9de0e64545a3 Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
10
12159
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
11 $ hg up -C 0
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
12 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
13 $ touch empty3
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
14 $ hg add empty3
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
15 $ hg commit -m 'add empty3'
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
16 created new head
3509
9de0e64545a3 Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
17
12159
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
18 $ hg heads
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
19 changeset: 2:a1cb177e0d44
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
20 tag: tip
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
21 parent: 0:1e1d9c4e5b64
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
22 user: test
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
23 date: Thu Jan 01 00:00:00 1970 +0000
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
24 summary: add empty3
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
25
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
26 changeset: 1:097d2b0e17f6
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
27 user: test
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
28 date: Thu Jan 01 00:00:00 1970 +0000
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
29 summary: add empty2
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
30
3509
9de0e64545a3 Test that we notice the empty files from the second parent during a merge
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
31
12159
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
32 $ hg merge 1
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
34 (branch merge, don't forget to commit)
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
35
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
36 Before changeset 05257fd28591, we didn't notice the
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
37 empty file that came from rev 1:
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
38
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
39 $ hg status
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
40 M empty2
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
41 $ hg commit -m merge
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
42 $ hg manifest --debug tip
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
43 b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty1
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
44 b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty2
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
45 b80de5d138758541c5f05265ad144ab9fa86d1db 644 empty3
8bedcfc38659 tests: unify test-empty-file
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
46
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12159
diff changeset
47 $ cd ..