|
|
|
Re: [PATCH 01/12] tests: add initial bash completion tests | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
On Sun, Apr 08, 2012 at 06:07:48AM +0300, Felipe Contreras wrote:
> + cat >expected <<-\EOF &&
> + fetch
> + filter-branch
> + filter-branch.sh
> + format-patch
> + fsck
> + EOF
> + test_completion "git f"
This test fails for me. The problem is that I have other git-f* programs
in my PATH, and the completion finds and displays them. In other words,
the environment outside the test suite can pollute the result.
I'm not sure of the right solution. We can't just sanitize the PATH in
test-lib.sh, since those git programs might be in /usr/bin or some other
directory containing other commands necessary to run the test suite. We
could sanitize it temporarily just for the _git completion invocation,
which consists only of builtins (and we know we're running under bash,
so we can trust that things like "test" are builtins). But it still
feels horribly hacky.
That patch might look like this:
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 7eb80dd..713f4b1 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -58,8 +58,11 @@ test_completion ()
_words=( $1 )
test $# -gt 1 && echo "$2" > expected
(( _cword = ${#_words[@]} - 1 ))
+ saved_path=$PATH
+ PATH=$MINIMAL_PATH
_git && print_comp &&
test_cmp expected out
+ PATH=$saved_path
}
test_expect_success 'basic' '
diff --git a/t/test-lib.sh b/t/test-lib.sh
index b7d7100..348b68d 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -466,12 +466,14 @@ then
IFS=$OLDIFS
PATH=$GIT_VALGRIND/bin:$PATH
GIT_EXEC_PATH=$GIT_VALGRIND/bin
+ MINIMAL_PATH=$GIT_VALGRIND/bin
export GIT_VALGRIND
elif test -n "$GIT_TEST_INSTALLED" ; then
GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) ||
error "Cannot run git from $GIT_TEST_INSTALLED."
PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR:$PATH
GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
+ MINIMAL_PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR
else # normal case, use ../bin-wrappers only unless $with_dashes:
git_bin_dir="$GIT_BUILD_DIR/bin-wrappers"
if ! test -x "$git_bin_dir/git" ; then
@@ -482,8 +484,10 @@ else # normal case, use ../bin-wrappers only unless $with_dashes:
fi
PATH="$git_bin_dir:$PATH"
GIT_EXEC_PATH=$GIT_BUILD_DIR
+ MINIMAL_PATH=$git_bin_dir
if test -n "$with_dashes" ; then
PATH="$GIT_BUILD_DIR:$PATH"
+ MINIMAL_PATH=$MINIMAL_PATH:$GIT_BUILD_DIR
fi
fi
GIT_TEMPLATE_DIR="$GIT_BUILD_DIR"/templates/blt
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Newbies FAQ] [Linux Kernel Development] [Free Online Dating] [Gcc Help] [IETF Annouce] [DCCP] [Netdev] [Networking] [Security] [V4L] [Bugtraq] [Free Online Dating] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Linux SCSI] [Fedora Users] [Linux Resources]