]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 4 Dec 2019 09:06:08 +0000 (10:06 +0100)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 6 Dec 2019 15:30:50 +0000 (16:30 +0100)
In v2.20.x, Git clones submodules recursively by first creating the
submodules' gitdirs and _then_ "updating" the submodules. This can lead
to the situation where the clone path is taken because the directory
(while it exists already) is not a git directory, but then the clone
fails because that gitdir is unexpectedly already a directory.

This _also_ works around the vulnerability that was fixed in "Disallow
dubiously-nested submodule git directories", but it produces a different
error message than the one expected by the test case, therefore we
adjust the test case accordingly.

Note: as the two submodules "race each other", there are actually two
possible error messages, therefore we have to teach the test case to
expect _two_ possible (and good) outcomes in addition to the one it
expected before.

Note: this workaround is only necessary for the v2.20.x release train;
The behavior changed again in v2.21.x so that the original test case's
expectations are met again.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
t/t7415-submodule-names.sh

index 33a9126ee0017df7345890a8b4506f721262eda5..140ea8cb8d97f0b5399c2d705bc62e8973a3b639 100755 (executable)
@@ -244,7 +244,7 @@ test_expect_success 'git dirs of sibling submodules must not be nested' '
                git commit -m nested
        ) &&
        test_must_fail git clone --recurse-submodules nested clone 2>err &&
-       test_i18ngrep "is inside git dir" err
+       test_i18ngrep -E "(is inside git dir|hippo already exists|not a git repository: .*/hippo)" err
 '
 
 test_done