зеркало из https://github.com/microsoft/git.git
tests: use the correct path separator with BusyBox
BusyBox-w32 is a true Win32 application, i.e. it does not come with a POSIX emulation layer. That also means that it does *not* use the Unix convention of separating the entries in the PATH variable using colons, but semicolons. However, there are also BusyBox ports to Windows which use a POSIX emulation layer such as Cygwin's or MSYS2's runtime, i.e. using colons as PATH separators. As a tell-tale, let's use the presence of semicolons in the PATH variable: on Unix, it is highly unlikely that it contains semicolons, and on Windows (without POSIX emulation), it is virtually guaranteed, as everybody should have both $SYSTEMROOT and $SYSTEMROOT/system32 in their PATH. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Родитель
c7da2eec1a
Коммит
72dab71be0
|
@ -4,6 +4,10 @@
|
|||
. ../../GIT-BUILD-OPTIONS
|
||||
INTEROP_ROOT=$(pwd)
|
||||
BUILD_ROOT=$INTEROP_ROOT/build
|
||||
case "$PATH" in
|
||||
*\;*) PATH_SEP=\; ;;
|
||||
*) PATH_SEP=: ;;
|
||||
esac
|
||||
|
||||
build_version () {
|
||||
if test -z "$1"
|
||||
|
@ -57,7 +61,7 @@ wrap_git () {
|
|||
write_script "$1" <<-EOF
|
||||
GIT_EXEC_PATH="$2"
|
||||
export GIT_EXEC_PATH
|
||||
PATH="$2:\$PATH"
|
||||
PATH="$2$PATH_SEP\$PATH"
|
||||
export GIT_EXEC_PATH
|
||||
exec git "\$@"
|
||||
EOF
|
||||
|
@ -71,7 +75,7 @@ generate_wrappers () {
|
|||
echo >&2 fatal: test tried to run generic git
|
||||
exit 1
|
||||
EOF
|
||||
PATH=$(pwd)/.bin:$PATH
|
||||
PATH=$(pwd)/.bin$PATH_SEP$PATH
|
||||
}
|
||||
|
||||
VERSION_A=${GIT_TEST_VERSION_A:-$VERSION_A}
|
||||
|
|
|
@ -214,7 +214,7 @@ setup_ext_wrapper () {
|
|||
cd "$TRASH_DIRECTORY/remote" &&
|
||||
eval "$*"
|
||||
EOF
|
||||
PATH=$TRASH_DIRECTORY:$PATH &&
|
||||
PATH=$TRASH_DIRECTORY$PATH_SEP$PATH &&
|
||||
export TRASH_DIRECTORY
|
||||
'
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
|||
. "$TEST_DIRECTORY"/lib-terminal.sh
|
||||
|
||||
TEST_ROOT="$PWD"
|
||||
PATH=$TEST_ROOT:$PATH
|
||||
PATH=$TEST_ROOT$PATH_SEP$PATH
|
||||
|
||||
write_script <<\EOF "$TEST_ROOT/rot13.sh"
|
||||
tr \
|
||||
|
|
|
@ -139,25 +139,25 @@ ancestor /foo /fo -1
|
|||
ancestor /foo /foo -1
|
||||
ancestor /foo /bar -1
|
||||
ancestor /foo /foo/bar -1
|
||||
ancestor /foo /foo:/bar -1
|
||||
ancestor /foo /:/foo:/bar 0
|
||||
ancestor /foo /foo:/:/bar 0
|
||||
ancestor /foo /:/bar:/foo 0
|
||||
ancestor /foo "/foo$PATH_SEP/bar" -1
|
||||
ancestor /foo "/$PATH_SEP/foo$PATH_SEP/bar" 0
|
||||
ancestor /foo "/foo$PATH_SEP/$PATH_SEP/bar" 0
|
||||
ancestor /foo "/$PATH_SEP/bar$PATH_SEP/foo" 0
|
||||
ancestor /foo/bar / 0
|
||||
ancestor /foo/bar /fo -1
|
||||
ancestor /foo/bar /foo 4
|
||||
ancestor /foo/bar /foo/ba -1
|
||||
ancestor /foo/bar /:/fo 0
|
||||
ancestor /foo/bar /foo:/foo/ba 4
|
||||
ancestor /foo/bar "/$PATH_SEP/fo" 0
|
||||
ancestor /foo/bar "/foo$PATH_SEP/foo/ba" 4
|
||||
ancestor /foo/bar /bar -1
|
||||
ancestor /foo/bar /fo -1
|
||||
ancestor /foo/bar /foo:/bar 4
|
||||
ancestor /foo/bar /:/foo:/bar 4
|
||||
ancestor /foo/bar /foo:/:/bar 4
|
||||
ancestor /foo/bar /:/bar:/fo 0
|
||||
ancestor /foo/bar /:/bar 0
|
||||
ancestor /foo/bar "/foo$PATH_SEP/bar" 4
|
||||
ancestor /foo/bar "/$PATH_SEP/foo$PATH_SEP/bar" 4
|
||||
ancestor /foo/bar "/foo$PATH_SEP/$PATH_SEP/bar" 4
|
||||
ancestor /foo/bar "/$PATH_SEP/bar$PATH_SEP/fo" 0
|
||||
ancestor /foo/bar "/$PATH_SEP/bar" 0
|
||||
ancestor /foo/bar /foo 4
|
||||
ancestor /foo/bar /foo:/bar 4
|
||||
ancestor /foo/bar "/foo$PATH_SEP/bar" 4
|
||||
ancestor /foo/bar /bar -1
|
||||
|
||||
# Windows-specific: DOS drives, network shares
|
||||
|
|
|
@ -70,7 +70,7 @@ test_expect_success 'run_command does not try to execute a directory' '
|
|||
cat bin2/greet
|
||||
EOF
|
||||
|
||||
PATH=$PWD/bin1:$PWD/bin2:$PATH \
|
||||
PATH=$PWD/bin1$PATH_SEP$PWD/bin2$PATH_SEP$PATH \
|
||||
test-tool run-command run-command greet >actual 2>err &&
|
||||
test_cmp bin2/greet actual &&
|
||||
test_must_be_empty err
|
||||
|
@ -87,7 +87,7 @@ test_expect_success POSIXPERM 'run_command passes over non-executable file' '
|
|||
cat bin2/greet
|
||||
EOF
|
||||
|
||||
PATH=$PWD/bin1:$PWD/bin2:$PATH \
|
||||
PATH=$PWD/bin1$PATH_SEP$PWD/bin2$PATH_SEP$PATH \
|
||||
test-tool run-command run-command greet >actual 2>err &&
|
||||
test_cmp bin2/greet actual &&
|
||||
test_must_be_empty err
|
||||
|
@ -107,7 +107,7 @@ test_expect_success POSIXPERM,SANITY 'unreadable directory in PATH' '
|
|||
git config alias.nitfol "!echo frotz" &&
|
||||
chmod a-rx local-command &&
|
||||
(
|
||||
PATH=./local-command:$PATH &&
|
||||
PATH=./local-command$PATH_SEP$PATH &&
|
||||
git nitfol >actual
|
||||
) &&
|
||||
echo frotz >expect &&
|
||||
|
|
|
@ -35,7 +35,7 @@ test_expect_success 'setup helper scripts' '
|
|||
test -z "$pass" || echo password=$pass
|
||||
EOF
|
||||
|
||||
PATH="$PWD:$PATH"
|
||||
PATH="$PWD$PATH_SEP$PATH"
|
||||
'
|
||||
|
||||
test_expect_success 'credential_fill invokes helper' '
|
||||
|
|
|
@ -81,9 +81,9 @@ then
|
|||
GIT_CEILING_DIRECTORIES="$TRASH_ROOT/top/"
|
||||
test_fail subdir_ceil_at_top_slash
|
||||
|
||||
GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top"
|
||||
GIT_CEILING_DIRECTORIES="$PATH_SEP$TRASH_ROOT/top"
|
||||
test_prefix subdir_ceil_at_top_no_resolve "sub/dir/"
|
||||
GIT_CEILING_DIRECTORIES=":$TRASH_ROOT/top/"
|
||||
GIT_CEILING_DIRECTORIES="$PATH_SEP$TRASH_ROOT/top/"
|
||||
test_prefix subdir_ceil_at_top_slash_no_resolve "sub/dir/"
|
||||
fi
|
||||
|
||||
|
@ -113,13 +113,13 @@ GIT_CEILING_DIRECTORIES="$TRASH_ROOT/subdi"
|
|||
test_prefix subdir_ceil_at_subdi_slash "sub/dir/"
|
||||
|
||||
|
||||
GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub"
|
||||
GIT_CEILING_DIRECTORIES="/foo$PATH_SEP$TRASH_ROOT/sub"
|
||||
test_fail second_of_two
|
||||
|
||||
GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub:/bar"
|
||||
GIT_CEILING_DIRECTORIES="$TRASH_ROOT/sub$PATH_SEP/bar"
|
||||
test_fail first_of_two
|
||||
|
||||
GIT_CEILING_DIRECTORIES="/foo:$TRASH_ROOT/sub:/bar"
|
||||
GIT_CEILING_DIRECTORIES="/foo$PATH_SEP$TRASH_ROOT/sub$PATH_SEP/bar"
|
||||
test_fail second_of_three
|
||||
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ test_cd_to_toplevel () {
|
|||
test_expect_success $3 "$2" '
|
||||
(
|
||||
cd '"'$1'"' &&
|
||||
PATH="$EXEC_PATH:$PATH" &&
|
||||
PATH="$EXEC_PATH$PATH_SEP$PATH" &&
|
||||
. git-sh-setup &&
|
||||
cd_to_toplevel &&
|
||||
[ "$(pwd -P)" = "$TOPLEVEL" ]
|
||||
|
|
|
@ -146,7 +146,7 @@ test_expect_success 'rebase -s funny -Xopt' '
|
|||
git checkout -b test-funny main^ &&
|
||||
test_commit funny &&
|
||||
(
|
||||
PATH=./test-bin:$PATH &&
|
||||
PATH=./test-bin$PATH_SEP$PATH &&
|
||||
git rebase -s funny -Xopt main
|
||||
) &&
|
||||
test -f funny.was.run
|
||||
|
|
|
@ -73,7 +73,7 @@ test_expect_success 'rebase --continue remembers merge strategy and options' '
|
|||
EOF
|
||||
chmod +x test-bin/git-merge-funny &&
|
||||
(
|
||||
PATH=./test-bin:$PATH &&
|
||||
PATH=./test-bin$PATH_SEP$PATH &&
|
||||
test_must_fail git rebase -s funny -Xopt main topic
|
||||
) &&
|
||||
test -f funny.was.run &&
|
||||
|
@ -81,7 +81,7 @@ test_expect_success 'rebase --continue remembers merge strategy and options' '
|
|||
echo "Resolved" >F2 &&
|
||||
git add F2 &&
|
||||
(
|
||||
PATH=./test-bin:$PATH &&
|
||||
PATH=./test-bin$PATH_SEP$PATH &&
|
||||
git rebase --continue
|
||||
) &&
|
||||
test -f funny.was.run
|
||||
|
@ -105,7 +105,7 @@ test_expect_success 'rebase -i --continue handles merge strategy and options' '
|
|||
EOF
|
||||
chmod +x test-bin/git-merge-funny &&
|
||||
(
|
||||
PATH=./test-bin:$PATH &&
|
||||
PATH=./test-bin$PATH_SEP$PATH &&
|
||||
test_must_fail git rebase -i -s funny -Xopt -Xfoo main topic
|
||||
) &&
|
||||
test -f funny.was.run &&
|
||||
|
@ -113,7 +113,7 @@ test_expect_success 'rebase -i --continue handles merge strategy and options' '
|
|||
echo "Resolved" >F2 &&
|
||||
git add F2 &&
|
||||
(
|
||||
PATH=./test-bin:$PATH &&
|
||||
PATH=./test-bin$PATH_SEP$PATH &&
|
||||
git rebase --continue
|
||||
) &&
|
||||
test -f funny.was.run
|
||||
|
|
|
@ -40,7 +40,7 @@ test_expect_success 'access alternate via absolute path' '
|
|||
'
|
||||
|
||||
test_expect_success 'access multiple alternates' '
|
||||
check_obj "$PWD/one.git/objects:$PWD/two.git/objects" <<-EOF
|
||||
check_obj "$PWD/one.git/objects$PATH_SEP$PWD/two.git/objects" <<-EOF
|
||||
$one blob
|
||||
$two blob
|
||||
EOF
|
||||
|
@ -76,7 +76,7 @@ test_expect_success 'access alternate via relative path (subdir)' '
|
|||
quoted='"one.git\057objects"'
|
||||
unquoted='two.git/objects'
|
||||
test_expect_success 'mix of quoted and unquoted alternates' '
|
||||
check_obj "$quoted:$unquoted" <<-EOF
|
||||
check_obj "$quoted$PATH_SEP$unquoted" <<-EOF
|
||||
$one blob
|
||||
$two blob
|
||||
EOF
|
||||
|
|
|
@ -85,7 +85,7 @@ test_expect_success 'set up fake git-daemon' '
|
|||
"$TRASH_DIRECTORY/remote"
|
||||
EOF
|
||||
export TRASH_DIRECTORY &&
|
||||
PATH=$TRASH_DIRECTORY:$PATH
|
||||
PATH=$TRASH_DIRECTORY$PATH_SEP$PATH
|
||||
'
|
||||
|
||||
test_expect_success 'ext command can connect to git daemon (no vhost)' '
|
||||
|
|
|
@ -54,7 +54,7 @@ test_expect_success !MINGW,TTY 'LESS and LV envvars set by git-sh-setup' '
|
|||
sane_unset LESS LV &&
|
||||
PAGER="env >pager-env.out; wc" &&
|
||||
export PAGER &&
|
||||
PATH="$(git --exec-path):$PATH" &&
|
||||
PATH="$(git --exec-path)$PATH_SEP$PATH" &&
|
||||
export PATH &&
|
||||
test_terminal sh -c ". git-sh-setup && git_pager"
|
||||
) &&
|
||||
|
@ -388,7 +388,7 @@ test_default_pager() {
|
|||
EOF
|
||||
chmod +x \$less &&
|
||||
(
|
||||
PATH=.:\$PATH &&
|
||||
PATH=.$PATH_SEP\$PATH &&
|
||||
export PATH &&
|
||||
$full_command
|
||||
) &&
|
||||
|
|
|
@ -23,7 +23,7 @@ test_expect_success 'set up custom strategy' '
|
|||
EOF
|
||||
|
||||
chmod +x git-merge-theirs &&
|
||||
PATH=.:$PATH &&
|
||||
PATH=.$PATH_SEP$PATH &&
|
||||
export PATH
|
||||
'
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ test_expect_success SIMPLEPAGER 'git grep -O' '
|
|||
EOF
|
||||
echo grep.h >expect.notless &&
|
||||
|
||||
PATH=.:$PATH git grep -O GREP_PATTERN >out &&
|
||||
PATH=.$PATH_SEP$PATH git grep -O GREP_PATTERN >out &&
|
||||
{
|
||||
test_cmp expect.less pager-args ||
|
||||
test_cmp expect.notless pager-args
|
||||
|
|
|
@ -12,7 +12,7 @@ test_expect_success 'setup' '
|
|||
echo distimdistim was called
|
||||
EOF
|
||||
|
||||
PATH="$PATH:." &&
|
||||
PATH="$PATH$PATH_SEP." &&
|
||||
export PATH &&
|
||||
|
||||
git commit --allow-empty -m "a single log entry" &&
|
||||
|
|
|
@ -286,7 +286,7 @@ test_expect_success 'exit when p4 fails to produce marshaled output' '
|
|||
EOF
|
||||
chmod 755 badp4dir/p4 &&
|
||||
(
|
||||
PATH="$TRASH_DIRECTORY/badp4dir:$PATH" &&
|
||||
PATH="$TRASH_DIRECTORY/badp4dir$PATH_SEP$PATH" &&
|
||||
export PATH &&
|
||||
test_expect_code 1 git p4 clone --dest="$git" //depot >errs 2>&1
|
||||
) &&
|
||||
|
|
|
@ -15,6 +15,15 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see http://www.gnu.org/licenses/ .
|
||||
|
||||
# On Unix/Linux, the path separator is the colon, on other systems it
|
||||
# may be different, though. On Windows, for example, it is a semicolon.
|
||||
# If the PATH variable contains semicolons, it is pretty safe to assume
|
||||
# that the path separator is a semicolon.
|
||||
case "$PATH" in
|
||||
*\;*) PATH_SEP=\; ;;
|
||||
*) PATH_SEP=: ;;
|
||||
esac
|
||||
|
||||
# Test the binaries we have just built. The tests are kept in
|
||||
# t/ subdirectory and are run in 'trash directory' subdirectory.
|
||||
if test -z "$TEST_DIRECTORY"
|
||||
|
@ -1442,7 +1451,7 @@ then
|
|||
done
|
||||
done
|
||||
IFS=$OLDIFS
|
||||
PATH=$GIT_VALGRIND/bin:$PATH
|
||||
PATH=$GIT_VALGRIND/bin$PATH_SEP$PATH
|
||||
GIT_EXEC_PATH=$GIT_VALGRIND/bin
|
||||
export GIT_VALGRIND
|
||||
GIT_VALGRIND_MODE="$valgrind"
|
||||
|
@ -1454,7 +1463,7 @@ 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/t/helper:$PATH
|
||||
PATH=$GIT_TEST_INSTALLED$PATH_SEP$GIT_BUILD_DIR/t/helper$PATH_SEP$PATH
|
||||
GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
|
||||
else # normal case, use ../bin-wrappers only unless $with_dashes:
|
||||
if test -n "$no_bin_wrappers"
|
||||
|
@ -1470,12 +1479,12 @@ else # normal case, use ../bin-wrappers only unless $with_dashes:
|
|||
fi
|
||||
with_dashes=t
|
||||
fi
|
||||
PATH="$git_bin_dir:$PATH"
|
||||
PATH="$git_bin_dir$PATH_SEP$PATH"
|
||||
fi
|
||||
GIT_EXEC_PATH=$GIT_BUILD_DIR
|
||||
if test -n "$with_dashes"
|
||||
then
|
||||
PATH="$GIT_BUILD_DIR:$GIT_BUILD_DIR/t/helper:$PATH"
|
||||
PATH="$GIT_BUILD_DIR$PATH_SEP$GIT_BUILD_DIR/t/helper$PATH_SEP$PATH"
|
||||
fi
|
||||
fi
|
||||
GIT_TEMPLATE_DIR="$GIT_BUILD_DIR"/templates/blt
|
||||
|
|
Загрузка…
Ссылка в новой задаче