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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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