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