From: Jeff King <peff@peff.net>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"SZEDER Gábor" <szeder@ira.uka.de>,
"Junio C Hamano" <gitster@pobox.com>,
"Thomas Rast" <trast@student.ethz.ch>
Subject: Re: [PATCH 01/12] tests: add initial bash completion tests
Date: Sun, 8 Apr 2012 01:01:40 -0400 [thread overview]
Message-ID: <20120408050140.GA5862@sigill.intra.peff.net> (raw)
In-Reply-To: <1333854479-23260-2-git-send-email-felipe.contreras@gmail.com>
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
next prev parent reply other threads:[~2012-04-08 5:02 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-08 3:07 [PATCH 00/12] Bash completion rework Felipe Contreras
2012-04-08 3:07 ` [PATCH 01/12] tests: add initial bash completion tests Felipe Contreras
2012-04-08 4:25 ` Junio C Hamano
2012-04-08 4:48 ` Jeff King
2012-04-08 5:41 ` Junio C Hamano
2012-04-08 5:42 ` Jeff King
2012-04-08 8:12 ` Jeff King
2012-04-08 9:07 ` Andreas Schwab
2012-04-08 11:04 ` Jeff King
2012-04-11 21:59 ` Felipe Contreras
2012-04-11 23:49 ` Junio C Hamano
2012-04-08 5:01 ` Jeff King [this message]
2012-04-08 10:30 ` Jonathan Nieder
2012-04-08 11:06 ` Jeff King
2012-04-09 19:58 ` Junio C Hamano
2012-04-08 10:28 ` John Keeping
2012-04-08 3:07 ` [PATCH 02/12] completion: simplify __gitcomp Felipe Contreras
2012-04-08 12:46 ` SZEDER Gábor
2012-04-08 13:07 ` Felipe Contreras
2012-04-08 13:27 ` Jonathan Nieder
2012-04-08 13:47 ` Felipe Contreras
2012-04-08 14:36 ` Jonathan Nieder
2012-04-08 14:58 ` Felipe Contreras
2012-04-09 18:57 ` Johannes Sixt
2012-04-09 19:12 ` Felipe Contreras
2012-04-08 14:11 ` Felipe Contreras
2012-04-08 14:39 ` Jonathan Nieder
2012-04-09 18:22 ` Junio C Hamano
2012-04-08 3:07 ` [PATCH 03/12] completion: simplify __gitcomp_1 Felipe Contreras
2012-04-08 3:07 ` [PATCH 04/12] completion: trivial simplification Felipe Contreras
2012-04-08 3:07 ` [PATCH 05/12] completion: add missing global options Felipe Contreras
2012-04-08 10:22 ` John Keeping
2012-04-08 12:36 ` SZEDER Gábor
2012-04-08 3:07 ` [PATCH 06/12] tests: add more bash completion tests Felipe Contreras
2012-04-08 3:07 ` [PATCH 07/12] completion: simplify command stuff Felipe Contreras
2012-04-11 22:14 ` SZEDER Gábor
2012-04-11 22:21 ` Felipe Contreras
2012-04-11 23:01 ` SZEDER Gábor
2012-04-11 23:45 ` Felipe Contreras
2012-04-12 23:08 ` Felipe Contreras
2012-04-08 3:07 ` [PATCH 08/12] completion: simplify _git_bundle Felipe Contreras
2012-04-08 3:07 ` [PATCH 09/12] completion: calculate argument position properly Felipe Contreras
2012-04-08 3:07 ` [PATCH 10/12] completion: add new git_complete helper Felipe Contreras
2012-04-11 22:50 ` SZEDER Gábor
2012-04-11 23:44 ` Felipe Contreras
2012-04-08 3:07 ` [PATCH 11/12] test: add tests for aliases in bash completion Felipe Contreras
2012-04-08 3:20 ` Felipe Contreras
2012-04-08 3:07 ` [PATCH 12/12] completion: rename _git and _gitk Felipe Contreras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120408050140.GA5862@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=spearce@spearce.org \
--cc=szeder@ira.uka.de \
--cc=trast@student.ethz.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).