Browse Source

run test suite without dashed git-commands in PATH

Only put bin-wrappers in the PATH (not GIT_EXEC_PATH), to emulate the
default installed user environment, and ensure all the programs run
correctly in such an environment.  This is now the default, although
it can be overridden with a --with-dashes test option when running
tests.

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Matthew Ogilvie 15 years ago committed by Junio C Hamano
parent
commit
e4597aae65
  1. 9
      t/README
  2. 33
      t/test-lib.sh

9
t/README

@ -75,6 +75,15 @@ appropriately before running "make".
As the names depend on the tests' file names, it is safe to As the names depend on the tests' file names, it is safe to
run the tests with this option in parallel. run the tests with this option in parallel.


--with-dashes::
By default tests are run without dashed forms of
commands (like git-commit) in the PATH (it only uses
wrappers from ../bin-wrappers). Use this option to include
the build directory (..) in the PATH, which contains all
the dashed forms of commands. This option is currently
implied by other options like --valgrind and
GIT_TEST_INSTALLED.

You can also set the GIT_TEST_INSTALLED environment variable to You can also set the GIT_TEST_INSTALLED environment variable to
the bindir of an existing git installation to test that installation. the bindir of an existing git installation to test that installation.
You still need to have built this git sandbox, from which various You still need to have built this git sandbox, from which various

33
t/test-lib.sh

@ -105,6 +105,8 @@ do
verbose=t; shift ;; verbose=t; shift ;;
-q|--q|--qu|--qui|--quie|--quiet) -q|--q|--qu|--qui|--quie|--quiet)
quiet=t; shift ;; quiet=t; shift ;;
--with-dashes)
with_dashes=t; shift ;;
--no-color) --no-color)
color=; shift ;; color=; shift ;;
--no-python) --no-python)
@ -551,19 +553,8 @@ test_done () {
# Test the binaries we have just built. The tests are kept in # Test the binaries we have just built. The tests are kept in
# t/ subdirectory and are run in 'trash directory' subdirectory. # t/ subdirectory and are run in 'trash directory' subdirectory.
TEST_DIRECTORY=$(pwd) TEST_DIRECTORY=$(pwd)
if test -z "$valgrind" if test -n "$valgrind"
then then
if test -z "$GIT_TEST_INSTALLED"
then
PATH=$TEST_DIRECTORY/..:$PATH
GIT_EXEC_PATH=$TEST_DIRECTORY/..
else
GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) ||
error "Cannot run git from $GIT_TEST_INSTALLED."
PATH=$GIT_TEST_INSTALLED:$TEST_DIRECTORY/..:$PATH
GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
fi
else
make_symlink () { make_symlink () {
test -h "$2" && test -h "$2" &&
test "$1" = "$(readlink "$2")" || { test "$1" = "$(readlink "$2")" || {
@ -625,6 +616,24 @@ else
PATH=$GIT_VALGRIND/bin:$PATH PATH=$GIT_VALGRIND/bin:$PATH
GIT_EXEC_PATH=$GIT_VALGRIND/bin GIT_EXEC_PATH=$GIT_VALGRIND/bin
export GIT_VALGRIND 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:$TEST_DIRECTORY/..:$PATH
GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
else # normal case, use ../bin-wrappers only unless $with_dashes:
git_bin_dir="$TEST_DIRECTORY/../bin-wrappers"
if ! test -x "$git_bin_dir/git" ; then
if test -z "$with_dashes" ; then
say "$git_bin_dir/git is not executable; using GIT_EXEC_PATH"
fi
with_dashes=t
fi
PATH="$git_bin_dir:$PATH"
GIT_EXEC_PATH=$TEST_DIRECTORY/..
if test -n "$with_dashes" ; then
PATH="$TEST_DIRECTORY/..:$PATH"
fi
fi fi
GIT_TEMPLATE_DIR=$(pwd)/../templates/blt GIT_TEMPLATE_DIR=$(pwd)/../templates/blt
unset GIT_CONFIG unset GIT_CONFIG

Loading…
Cancel
Save