The tests in:

  t/t1306-xdg-files.sh

relied on brittle conventions:

  * "$HOME" and "$XDG_CONFIG_HOME" having certain values.

  * The testing commands having a certain current working
    directory; at least one test failed as a result.

This commit mitigates the problem by using the variables "$HOME"
and "$XDG_CONFIG_HOME" explicitly.

Signed-off-by: Michael Witten <mfwit...@gmail.com>
---
 t/t1306-xdg-files.sh | 69 +++++++++++++++++++++++++++-------------------------
 1 file changed, 36 insertions(+), 33 deletions(-)

diff --git a/t/t1306-xdg-files.sh b/t/t1306-xdg-files.sh
index 3c75c3f..2327047 100755
--- a/t/t1306-xdg-files.sh
+++ b/t/t1306-xdg-files.sh
@@ -9,58 +9,60 @@ test_description='Compatibility with $XDG_CONFIG_HOME/git/ 
files'
 
 . ./test-lib.sh
 
+GIT_CONFIG_DIR=$XDG_CONFIG_HOME/git
+
-test_expect_success 'read config: xdg file exists and ~/.gitconfig doesn'\''t' 
'
+test_expect_success 'read config: xdg file exists and "$HOME"/.gitconfig 
doesn'\''t' '
-       mkdir -p .config/git &&
+       mkdir -p "$GIT_CONFIG_DIR" &&
-       echo "[alias]" >.config/git/config &&
+       echo "[alias]" >"$GIT_CONFIG_DIR"/config &&
-       echo "  myalias = !echo in_config" >>.config/git/config &&
+       echo "  myalias = !echo in_config" >>"$GIT_CONFIG_DIR"/config &&
        echo in_config >expected &&
        git myalias >actual &&
        test_cmp expected actual
 '
 
 
-test_expect_success 'read config: xdg file exists and ~/.gitconfig exists' '
+test_expect_success 'read config: xdg file exists and "$HOME"/.gitconfig 
exists' '
-       >.gitconfig &&
+       >"$HOME"/.gitconfig &&
-       echo "[alias]" >.gitconfig &&
+       echo "[alias]" >"$HOME"/.gitconfig &&
-       echo "  myalias = !echo in_gitconfig" >>.gitconfig &&
+       echo "  myalias = !echo in_gitconfig" >>"$HOME"/.gitconfig &&
        echo in_gitconfig >expected &&
        git myalias >actual &&
        test_cmp expected actual
 '
 
 
-test_expect_success 'read with --get: xdg file exists and ~/.gitconfig 
doesn'\''t' '
+test_expect_success 'read with --get: xdg file exists and "$HOME"/.gitconfig 
doesn'\''t' '
-       rm .gitconfig &&
+       rm "$HOME"/.gitconfig &&
-       echo "[user]" >.config/git/config &&
+       echo "[user]" >"$GIT_CONFIG_DIR"/config &&
-       echo "  name = read_config" >>.config/git/config &&
+       echo "  name = read_config" >>"$GIT_CONFIG_DIR"/config &&
        echo read_config >expected &&
        git config --get user.name >actual &&
        test_cmp expected actual
 '
 
 
-test_expect_success 'read with --get: xdg file exists and ~/.gitconfig exists' 
'
+test_expect_success 'read with --get: xdg file exists and "$HOME"/.gitconfig 
exists' '
-       >.gitconfig &&
+       >"$HOME"/.gitconfig &&
-       echo "[user]" >.gitconfig &&
+       echo "[user]" >"$HOME"/.gitconfig &&
-       echo "  name = read_gitconfig" >>.gitconfig &&
+       echo "  name = read_gitconfig" >>"$HOME"/.gitconfig &&
        echo read_gitconfig >expected &&
        git config --get user.name >actual &&
        test_cmp expected actual
 '
 
 
-test_expect_success 'read with --list: xdg file exists and ~/.gitconfig 
doesn'\''t' '
+test_expect_success 'read with --list: xdg file exists and "$HOME"/.gitconfig 
doesn'\''t' '
-       rm .gitconfig &&
+       rm "$HOME"/.gitconfig &&
        echo user.name=read_config >expected &&
        git config --global --list >actual &&
        test_cmp expected actual
 '
 
 
-test_expect_success 'read with --list: xdg file exists and ~/.gitconfig 
exists' '
+test_expect_success 'read with --list: xdg file exists and "$HOME"/.gitconfig 
exists' '
-       >.gitconfig &&
+       >"$HOME"/.gitconfig &&
-       echo "[user]" >.gitconfig &&
+       echo "[user]" >"$HOME"/.gitconfig &&
-       echo "  name = read_gitconfig" >>.gitconfig &&
+       echo "  name = read_gitconfig" >>"$HOME"/.gitconfig &&
        echo user.name=read_gitconfig >expected &&
        git config --global --list >actual &&
        test_cmp expected actual
@@ -75,8 +77,8 @@ test_expect_success 'Setup' '
 
 
 test_expect_success 'Exclusion of a file in the XDG ignore file' '
-       mkdir -p "$HOME"/.config/git/ &&
+       mkdir -p "$GIT_CONFIG_DIR" &&
-       echo to_be_excluded >"$HOME"/.config/git/ignore &&
+       echo to_be_excluded >"$GIT_CONFIG_DIR"/ignore &&
        test_must_fail git add to_be_excluded
 '
 
@@ -89,7 +91,7 @@ test_expect_success 'Exclusion in both XDG and local ignore 
files' '
 
 test_expect_success 'Exclusion in a non-XDG global ignore file' '
        rm .gitignore &&
-       echo >"$HOME"/.config/git/ignore &&
+       echo >"$GIT_CONFIG_DIR"/ignore &&
        echo to_be_excluded >"$HOME"/my_gitignore &&
        git config core.excludesfile "$HOME"/my_gitignore &&
        test_must_fail git add to_be_excluded
@@ -100,7 +102,7 @@ test_expect_success 'Checking attributes in the XDG 
attributes file' '
        echo foo >f &&
        git check-attr -a f >actual &&
        test_line_count -eq 0 actual &&
-       echo "f attr_f" >"$HOME"/.config/git/attributes &&
+       echo "f attr_f" >"$GIT_CONFIG_DIR"/attributes &&
        echo "f: attr_f: set" >expected &&
        git check-attr -a f >actual &&
        test_cmp expected actual
@@ -125,18 +127,18 @@ test_expect_success 'Checking attributes in a non-XDG 
global attributes file' '
 '
 
 
-test_expect_success 'write: xdg file exists and ~/.gitconfig doesn'\''t' '
+test_expect_success 'write: xdg file exists and "$HOME"/.gitconfig doesn'\''t' 
'
-       mkdir -p "$HOME"/.config/git &&
+       mkdir -p "$GIT_CONFIG_DIR" &&
-       >"$HOME"/.config/git/config &&
+       >"$GIT_CONFIG_DIR"/config &&
        test_might_fail rm "$HOME"/.gitconfig &&
        git config --global user.name "write_config" &&
        echo "[user]" >expected &&
        echo "  name = write_config" >>expected &&
-       test_cmp expected "$HOME"/.config/git/config
+       test_cmp expected "$GIT_CONFIG_DIR"/config
 '
 
 
-test_expect_success 'write: xdg file exists and ~/.gitconfig exists' '
+test_expect_success 'write: xdg file exists and "$HOME"/.gitconfig exists' '
        >"$HOME"/.gitconfig &&
        git config --global user.name "write_gitconfig" &&
        echo "[user]" >expected &&
@@ -145,14 +147,15 @@ test_expect_success 'write: xdg file exists and 
~/.gitconfig exists' '
 '
 
 
-test_expect_success 'write: ~/.config/git/ exists and config file doesn'\''t' '
+test_expect_success 'write: "$XDG_CONFIG_HOME/git" exists and config file 
doesn'\''t' '
        test_might_fail rm "$HOME"/.gitconfig &&
-       test_might_fail rm "$HOME"/.config/git/config &&
+       test_might_fail rm "$GIT_CONFIG_DIR"/config &&
        git config --global user.name "write_gitconfig" &&
        echo "[user]" >expected &&
        echo "  name = write_gitconfig" >>expected &&
        test_cmp expected "$HOME"/.gitconfig
 '
 
+unset GIT_CONFIG_DIR
 
 test_done
-- 
1.7.11.1.29.gf71be5c

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to