Mercurial > hg
annotate tests/test-journal-exists.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 | 2f2682f40ea0 |
children | adecb1ab4a0d |
rev | line source |
---|---|
49621
55c6ebd11cb9
tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
45906
diff
changeset
|
1 $ hg init repo |
55c6ebd11cb9
tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
45906
diff
changeset
|
2 $ cd repo |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
3 $ echo a > a |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
4 $ hg ci -Am0 |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
5 adding a |
5865
e7127f669edb
transactions: don't show a backtrace when journal exists
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
7 $ hg -q clone . foo |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
8 |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
9 $ touch .hg/store/journal |
5865
e7127f669edb
transactions: don't show a backtrace when journal exists
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
10 |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
11 $ echo foo > a |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
12 $ hg ci -Am0 |
45906
95c4cca641f6
errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents:
44355
diff
changeset
|
13 abort: abandoned transaction found |
21274
3b4c75690206
journal: set Abort hint when failing due to an abandoned transaction
Johan Bjork <jbjoerk@gmail.com>
parents:
20008
diff
changeset
|
14 (run 'hg recover' to clean up transaction) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12205
diff
changeset
|
15 [255] |
5865
e7127f669edb
transactions: don't show a backtrace when journal exists
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
17 $ hg recover |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
18 rolling back interrupted transaction |
44355
7a4e1d245f19
recover: don't verify by default
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44134
diff
changeset
|
19 (verify step skipped, run `hg verify` to check your repository content) |
5865
e7127f669edb
transactions: don't show a backtrace when journal exists
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 |
44134
e96ed3a61899
recover: fix typos
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
42144
diff
changeset
|
21 recover, explicit verify |
42144
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
22 |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
23 $ touch .hg/store/journal |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
24 $ hg ci -Am0 |
45906
95c4cca641f6
errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents:
44355
diff
changeset
|
25 abort: abandoned transaction found |
42144
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
26 (run 'hg recover' to clean up transaction) |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
27 [255] |
49825
2f2682f40ea0
tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents:
49621
diff
changeset
|
28 $ hg recover --verify -q |
42144
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
29 |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
30 recover, no verify |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
31 |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
32 $ touch .hg/store/journal |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
33 $ hg ci -Am0 |
45906
95c4cca641f6
errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents:
44355
diff
changeset
|
34 abort: abandoned transaction found |
42144
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
35 (run 'hg recover' to clean up transaction) |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
36 [255] |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
37 $ hg recover --no-verify |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
38 rolling back interrupted transaction |
44134
e96ed3a61899
recover: fix typos
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
42144
diff
changeset
|
39 (verify step skipped, run `hg verify` to check your repository content) |
42144
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
40 |
013de80bf90e
recover: add a --[no-]verify flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
41420
diff
changeset
|
41 |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
42 Check that zero-size journals are correctly aborted: |
9693
c40a1ee20aa5
transaction: always remove empty journal on abort
Sune Foldager <cryo@cyanite.org>
parents:
5867
diff
changeset
|
43 |
20008
e54a078153f7
tests: skip tests that require not having root (issue4089)
Matt Mackall <mpm@selenic.com>
parents:
16959
diff
changeset
|
44 #if unix-permissions no-root |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
45 $ hg bundle -qa repo.hg |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
46 $ chmod -w foo/.hg/store/00changelog.i |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
47 |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
48 $ hg -R foo unbundle repo.hg |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
49 adding changesets |
49621
55c6ebd11cb9
tests: run many tests in $TESTTMP/repo instead of $TESTTMP
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
45906
diff
changeset
|
50 abort: Permission denied: '$TESTTMP/repo/foo/.hg/store/.00changelog.i-*' (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12205
diff
changeset
|
51 [255] |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
52 |
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
53 $ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi |
16959
acba1281e064
test-journal-exists: use #if
Adrian Buehlmann <adrian@cadifra.com>
parents:
15443
diff
changeset
|
54 #endif |
12205
b4d0d646b3f7
tests: unify test-journal-exists
Adrian Buehlmann <adrian@cadifra.com>
parents:
9693
diff
changeset
|
55 |