]> git.ipfire.org Git - thirdparty/git.git/commitdiff
contrib/credential: fix "netrc" tests with out-of-tree builds
authorPatrick Steinhardt <ps@pks.im>
Tue, 18 Feb 2025 07:45:50 +0000 (08:45 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 18 Feb 2025 19:40:03 +0000 (11:40 -0800)
Tests of the "netrc" credential helper aren't prepared to handle
out-of-tree builds:

  - They expect the "test.pl" script to be located relative to the build
    directory, even though it is located in the source directory.

  - They expect the built "git-credential-netrc" helper to be located
    relative to the "test.pl" file, evne though it is loated in the
    build directory.

This works alright as long as source and build directories are the same,
but starts to break apart with Meson.

Fix these first issue by using the new "GIT_SOURCE_DIR" variable to
locate the test script itself. And fix the second issue by introducing a
new environment variable "CREDENTIAL_NETRC_PATH" that can be set for
out-of-tree builds to locate the built credential helper.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/credential/netrc/t-git-credential-netrc.sh
contrib/credential/netrc/test.pl

index bf2777308a56b6f233553196821ab2750e269e8d..1b7b8b3a9aa8e0f727a9d5cda016a77ef770d74b 100755 (executable)
@@ -15,7 +15,7 @@
 
        export PERL5LIB="$GITPERLLIB"
        test_expect_success 'git-credential-netrc' '
-               perl "$GIT_BUILD_DIR"/contrib/credential/netrc/test.pl
+               perl "$GIT_SOURCE_DIR"/contrib/credential/netrc/test.pl
        '
 
        test_done
index c0fb3718b280c70316941de7617871360b724525..67a0ede5644dd23f9eb38098f7b5ef8f61885424 100755 (executable)
@@ -15,10 +15,11 @@ BEGIN {
 
 my @global_credential_args = @ARGV;
 my $scriptDir = dirname rel2abs $0;
-my ($netrc, $netrcGpg, $gcNetrc) = map { catfile $scriptDir, $_; }
+my ($netrc, $netrcGpg) = map { catfile $scriptDir, $_; }
                                        qw(test.netrc
-                                          test.netrc.gpg
-                                          git-credential-netrc);
+                                          test.netrc.gpg);
+my $gcNetrc = $ENV{CREDENTIAL_NETRC_PATH} || catfile $scriptDir, qw(git-credential-netrc);
+
 local $ENV{PATH} = join ':'
                       , $scriptDir
                       , $ENV{PATH}