annotate tests/helpers-testrepo.sh @ 52210:b3d6afa6ebbf stable

ci: rationalize variable usage The usage of "extends" allow to skip a lot of duplication. We also introduce more fine grained variables to help finer override.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 08 Nov 2024 14:56:54 +0100
parents 5e2f0fec0a47
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33206
45d6e2767a93 tests: use system hg only if changelog or dirstate can't be read
Yuya Nishihara <yuya@tcha.org>
parents: 33205
diff changeset
1 # In most cases, the mercurial repository can be read by the bundled hg, but
45d6e2767a93 tests: use system hg only if changelog or dirstate can't be read
Yuya Nishihara <yuya@tcha.org>
parents: 33205
diff changeset
2 # that isn't always true because third-party extensions may change the store
45d6e2767a93 tests: use system hg only if changelog or dirstate can't be read
Yuya Nishihara <yuya@tcha.org>
parents: 33205
diff changeset
3 # format, for example. In which case, the system hg installation is used.
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff changeset
4 #
33116
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
5 # We want to use the hg version being tested when interacting with the test
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
6 # repository, and the system hg when interacting with the mercurial source code
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
7 # repository.
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff changeset
8 #
33116
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
9 # The mercurial source repository was typically orignally cloned with the
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
10 # system mercurial installation, and may require extensions or settings from
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
11 # the system installation.
37342
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33206
diff changeset
12
37475
152f1b47e0ad tests: quote variable passed to shell test command
Yuya Nishihara <yuya@tcha.org>
parents: 37342
diff changeset
13 if [ -n "$HGTESTEXTRAEXTENSIONS" ]; then
37342
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33206
diff changeset
14 for extension in $HGTESTEXTRAEXTENSIONS; do
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33206
diff changeset
15 extraoptions="$extraoptions --config extensions.$extension=!"
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33206
diff changeset
16 done
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33206
diff changeset
17 fi
4e6a6d0dccee tests: conditionalize tests based on presence of custom extensions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33206
diff changeset
18
33116
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
19 syshg () {
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
20 (
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
21 syshgenv
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
22 exec hg "$@"
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
23 )
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
24 }
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
25
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
26 # Revert the environment so that running "hg" runs the system hg
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
27 # rather than the test hg installation.
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
28 syshgenv () {
33126
98e2c78e309c tests: more completely restore the environment in syshgenv
Adam Simpkins <simpkins@fb.com>
parents: 33125
diff changeset
29 . "$HGTEST_RESTOREENV"
33116
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
30 HGPLAIN=1
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
31 export HGPLAIN
51958
16574ca8b155 test: preserve the existing module policy config for testrepohg resuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 37475
diff changeset
32 if [ -n "$HGTEST_BASE_HGMODULEPOLICY" ]; then
16574ca8b155 test: preserve the existing module policy config for testrepohg resuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 37475
diff changeset
33 HGMODULEPOLICY="$HGTEST_BASE_HGMODULEPOLICY"
16574ca8b155 test: preserve the existing module policy config for testrepohg resuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 37475
diff changeset
34 else
16574ca8b155 test: preserve the existing module policy config for testrepohg resuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 37475
diff changeset
35 unset HGMODULEPOLICY
16574ca8b155 test: preserve the existing module policy config for testrepohg resuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 37475
diff changeset
36 fi
16574ca8b155 test: preserve the existing module policy config for testrepohg resuse
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 37475
diff changeset
37 export HGMODULEPOLICY
33116
6c113a7dec52 tests: use the system hg for examining the local repository
Adam Simpkins <simpkins@fb.com>
parents: 29219
diff changeset
38 }
33125
acfce52518c4 tests: do not use system hg if it does not have "files" command
Jun Wu <quark@fb.com>
parents: 33116
diff changeset
39
33205
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
40 # The test-repo is a live hg repository which may have evolution markers
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
41 # created, e.g. when a ~/.hgrc enabled evolution.
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
42 #
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
43 # Tests may be run using a custom HGRCPATH, which do not enable evolution
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
44 # markers by default.
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
45 #
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
46 # If test-repo includes evolution markers, and we do not enable evolution
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
47 # markers, hg will occasionally complain when it notices them, which disrupts
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
48 # tests resulting in sporadic failures.
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
49 #
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
50 # Since we aren't performing any write operations on the test-repo, there's
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
51 # no harm in telling hg that we support evolution markers, which is what the
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
52 # following lines for the hgrc file do:
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
53 cat >> "$HGRCPATH" << EOF
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
54 [experimental]
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
55 evolution = createmarkers
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
56 EOF
2d7300cf3f3f tests: restore workaround of obsolete warning from 3c9066ed557c
Yuya Nishihara <yuya@tcha.org>
parents: 33204
diff changeset
57
33206
45d6e2767a93 tests: use system hg only if changelog or dirstate can't be read
Yuya Nishihara <yuya@tcha.org>
parents: 33205
diff changeset
58 # Use the system hg command if the bundled hg can't read the repository with
45d6e2767a93 tests: use system hg only if changelog or dirstate can't be read
Yuya Nishihara <yuya@tcha.org>
parents: 33205
diff changeset
59 # no warning nor error.
45d6e2767a93 tests: use system hg only if changelog or dirstate can't be read
Yuya Nishihara <yuya@tcha.org>
parents: 33205
diff changeset
60 if [ -n "`hg id -R "$TESTDIR/.." 2>&1 >/dev/null`" ]; then
51918
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
61 testrepohg() {
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
62 syshg "$@"
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
63 }
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
64 testrepohgenv() {
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
65 syshgenv "$@"
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
66 }
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33126
diff changeset
67 else
51918
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
68 testrepohg() {
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
69 hg $extraoptions "$@"
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
70 }
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
71 testrepohgenv() {
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
72 :
813226b3b4ca tests: in helpers-testrepo.sh switch from shell aliases to functions
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 37475
diff changeset
73 }
33125
acfce52518c4 tests: do not use system hg if it does not have "files" command
Jun Wu <quark@fb.com>
parents: 33116
diff changeset
74 fi