[PATCH v4 0/6] t: mark "files"-backend specific tests
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jan 29, 2024, 11:07 UTC
- Message-ID
- <cover.1706525813.git.ps@pks.im>
- In-Reply-To
- <cover.1704802213.git.ps@pks.im>
Hi,
this is the fourth version of my patch series that addresses tests which are specific to the "files" backend. There is only a single change compared to v3, which is an improved commit message for the first patch.
Thanks!
Patrick
Patrick Steinhardt (6): t1300: make tests more robust with non-default ref backends t1301: mark test for `core.sharedRepository` as reffiles specific t1302: make tests more robust with new extensions t1419: mark test suite as files-backend specific t5526: break test submodule differently t: mark tests regarding git-pack-refs(1) to be backend specific
t/t1300-config.sh | 78 ++++++++++++++++++++++------------- t/t1301-shared-repo.sh | 2 +- t/t1302-repo-version.sh | 23 +++++++---- t/t1409-avoid-packing-refs.sh | 6 +++ t/t1419-exclude-refs.sh | 6 +++ t/t3210-pack-refs.sh | 6 +++ t/t5526-fetch-submodules.sh | 2 +- 7 files changed, 85 insertions(+), 38 deletions(-)
Range-diff against v3:
1: a57e57a7c3 ! 1: 80a74bbb56 t1300: make tests more robust with non-default ref backends
@@ Commit message
t1300: make tests more robust with non-default ref backends
The t1300 test suite exercises the git-config(1) tool. To do so, the
- test overwrites ".git/config" to contain custom contents. While this is
- easy enough to do, it may create problems when using a non-default
- repository format because this causes us to overwrite the repository
- format version as well as any potential extensions. With the upcoming
- "reftable" ref backend the result is that Git would try to access refs
- via the "files" backend even though the repository has been initialized
- with the "reftable" backend, which will cause failures when trying to
- access any refs.
+ test overwrites ".git/config" to contain custom contents in several
+ places with code like the following:
- Refactor tests which access the refdb to be more robust by using their
- own separate repositories, which allows us to be more careful and not
- discard required extensions.
+ ```
+ cat > .git/config <<\EOF
+ ...
+ EOF
+ ```
+
+ While this is easy enough to do, it may create problems when using a
+ non-default repository format because this causes us to overwrite the
+ repository format version as well as any potential extensions. With the
+ upcoming "reftable" ref backend the result is that Git would try to
+ access refs via the "files" backend even though the repository has been
+ initialized with the "reftable" backend, which will cause failures when
+ trying to access any refs.
+
+ Ideally, we would rewrite the whole test suite to not depend on state
+ written by previous tests, but that would result in a lot of changes in
+ this test suite. Instead, we only refactor tests which access the refdb
+ to be more robust by using their own separate repositories, which allows
+ us to be more careful and not discard required extensions.
Note that we also have to touch up how the CUSTOM_CONFIG_FILE gets
accessed. This environment variable contains the relative path to a
2: fd6dd92c23 = 2: 4359d3ffa8 t1301: mark test for `core.sharedRepository` as reffiles specific
3: ec90320ff1 = 3: b72d85df60 t1302: make tests more robust with new extensions
4: d0d70c3f18 = 4: 1faa8687ae t1419: mark test suite as files-backend specific
5: 066c297189 = 5: 4b95277e20 t5526: break test submodule differently
6: 7b8921817b = 6: 53aea8236d t: mark tests regarding git-pack-refs(1) to be backend specificbase-commit: b50a608ba20348cb3dfc16a696816d51780e3f0f
-- 2.43.GIT