Jeff King <p...@peff.net> writes:

> On Thu, Sep 29, 2016 at 11:13:45AM -0700, Junio C Hamano wrote:
>
>> Jeff King <p...@peff.net> writes:
>> 
>> > I think anytime you would use GIT_CONFIG_NOSYSTEM over --local, it is an
>> > indication that the test is trying to check how multiple sources
>> > interact. And the right thing to do for them is to set GIT_ETC_GITCONFIG
>> > to some known quantity. We just couldn't do that before, so we skipped
>> > it.  IOW, something like the patch below (on top of yours).
>> 
>> OK, that way we can make sure that "multiple sources" operations do
>> look at the system-wide stuff.
>
> Exactly.

I think it deserves a separate patch and the result is more
understandable.  I've queued this for now (on top of a revised 1/4
that uses GIT_CONFIG_SYSTEM_PATH instead).

-- >8 --
From: Jeff King <p...@peff.net>
Date: Thu, 29 Sep 2016 11:29:10 -0700
Subject: [PATCH] t1300: check also system-wide configuration file in
 --show-origin tests

Because we used to run our tests with GIT_CONFIG_NOSYSTEM, these did
not test that the system-wide configuration file is also read and
shown as one of the origins.  Create a custom/fake system-wide
configuration file and make sure it appears in the output, using the
newly introduced GIT_CONFIG_SYSTEM_PATH mechanism.

Signed-off-by: Junio C Hamano <gits...@pobox.com>
---
 t/t1300-repo-config.sh | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index 0543b62227bf..aa25577709c5 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -1236,6 +1236,11 @@ test_expect_success 'set up --show-origin tests' '
                [user]
                        relative = include
        EOF
+       cat >"$HOME"/etc-gitconfig <<-\EOF &&
+               [user]
+                       system = true
+                       override = system
+       EOF
        cat >"$HOME"/.gitconfig <<-EOF &&
                [user]
                        global = true
@@ -1254,6 +1259,8 @@ test_expect_success 'set up --show-origin tests' '
 
 test_expect_success '--show-origin with --list' '
        cat >expect <<-EOF &&
+               file:$HOME/etc-gitconfig        user.system=true
+               file:$HOME/etc-gitconfig        user.override=system
                file:$HOME/.gitconfig   user.global=true
                file:$HOME/.gitconfig   user.override=global
                file:$HOME/.gitconfig   
include.path=$INCLUDE_DIR/absolute.include
@@ -1264,13 +1271,16 @@ test_expect_success '--show-origin with --list' '
                file:.git/../include/relative.include   user.relative=include
                command line:   user.cmdline=true
        EOF
+       GIT_CONFIG_SYSTEM_PATH=$HOME/etc-gitconfig \
        git -c user.cmdline=true config --list --show-origin >output &&
        test_cmp expect output
 '
 
 test_expect_success '--show-origin with --list --null' '
        cat >expect <<-EOF &&
-               file:$HOME/.gitconfigQuser.global
+               file:$HOME/etc-gitconfigQuser.system
+               trueQfile:$HOME/etc-gitconfigQuser.override
+               systemQfile:$HOME/.gitconfigQuser.global
                trueQfile:$HOME/.gitconfigQuser.override
                globalQfile:$HOME/.gitconfigQinclude.path
                
$INCLUDE_DIR/absolute.includeQfile:$INCLUDE_DIR/absolute.includeQuser.absolute
@@ -1281,6 +1291,7 @@ test_expect_success '--show-origin with --list --null' '
                includeQcommand line:Quser.cmdline
                trueQ
        EOF
+       GIT_CONFIG_SYSTEM_PATH=$HOME/etc-gitconfig \
        git -c user.cmdline=true config --null --list --show-origin >output.raw 
&&
        nul_to_q <output.raw >output &&
        # The here-doc above adds a newline that the --null output would not
@@ -1304,6 +1315,7 @@ test_expect_success '--show-origin with --get-regexp' '
                file:$HOME/.gitconfig   user.global true
                file:.git/config        user.local true
        EOF
+       GIT_CONFIG_SYSTEM_PATH=$HOME/etc-gitconfig \
        git config --show-origin --get-regexp "user\.[g|l].*" >output &&
        test_cmp expect output
 '
@@ -1312,6 +1324,7 @@ test_expect_success '--show-origin getting a single key' '
        cat >expect <<-\EOF &&
                file:.git/config        local
        EOF
+       GIT_CONFIG_SYSTEM_PATH=$HOME/etc-gitconfig \
        git config --show-origin user.override >output &&
        test_cmp expect output
 '
-- 
2.10.0-589-g5adf4e1

Reply via email to