Mercurial > public > mercurial-scm > hg
annotate tests/testlib/ext-stream-clone-steps.py @ 52359:3f0cf7bb3086
stream: preserve volatile cache early
Since cache file are not protected by the lock, their state might change between
their initial detection, the computation of their size and they preservation by
the VolatileManager. So we gather all theses step in a single one to avoid such
race.
This also handle disappearing cache file in the "copy/hardlink" clone cases.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 04 Dec 2024 23:31:46 +0100 |
parents | 11484a19cd77 |
children |
rev | line source |
---|---|
50621
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
1 # A utility extension that help taking a break during streamclone operation |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
2 # |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
3 # This extension is used through two environment variable |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
4 # |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
5 # HG_TEST_STREAM_WALKED_FILE_3 |
50621
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
6 # |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
7 # path of a file created by the process generating the streaming clone when |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
8 # it is done gathering data and is ready to unlock the repository and move |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
9 # to the streaming of content. |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
10 # |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
11 # HG_TEST_STREAM_WALKED_FILE_4 |
50621
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
12 # |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
13 # path of a file to be manually created to let the process generating the |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
14 # streaming clone proceed to streaming file content. |
c2633c69cbe0
stream-clone: document the ext-stream-clone-steps.py utility extension
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
48875
diff
changeset
|
15 |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
16 from mercurial import ( |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
17 encoding, |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
18 extensions, |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
19 streamclone, |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
20 testing, |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
21 ) |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 |
52359
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
24 WALKED_FILE_1 = encoding.environ[b'HG_TEST_STREAM_WALKED_FILE_1'] |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
25 WALKED_FILE_2 = encoding.environ[b'HG_TEST_STREAM_WALKED_FILE_2'] |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
26 WALKED_FILE_3 = encoding.environ[b'HG_TEST_STREAM_WALKED_FILE_3'] |
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
27 WALKED_FILE_4 = encoding.environ[b'HG_TEST_STREAM_WALKED_FILE_4'] |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
28 |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
29 |
52359
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
30 def _test_sync_point_walk_1_2(orig, repo): |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
31 testing.write_file(WALKED_FILE_1) |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
32 testing.wait_file(WALKED_FILE_2) |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
33 |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
34 |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
35 def _test_sync_point_walk_3(orig, repo): |
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
36 testing.write_file(WALKED_FILE_3) |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
38 |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
39 def _test_sync_point_walk_4(orig, repo): |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
40 assert repo._currentlock(repo._lockref) is None |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
41 testing.wait_file(WALKED_FILE_4) |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
42 |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
43 |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
44 def uisetup(ui): |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
45 extensions.wrapfunction( |
52359
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
46 streamclone, '_test_sync_point_walk_1_2', _test_sync_point_walk_1_2 |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
47 ) |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
48 |
3f0cf7bb3086
stream: preserve volatile cache early
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
52358
diff
changeset
|
49 extensions.wrapfunction( |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
50 streamclone, '_test_sync_point_walk_3', _test_sync_point_walk_3 |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
51 ) |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
52 |
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
53 extensions.wrapfunction( |
52358
11484a19cd77
stream: rename all test hook point one number up
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
50621
diff
changeset
|
54 streamclone, '_test_sync_point_walk_4', _test_sync_point_walk_4 |
46986
faa43f09ad98
streamclone: remove sleep based "synchronisation" in tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
55 ) |