Merge branch 'ew/git-svn-http-tests'

Tests for "git svn" have been taught to reuse the lib-httpd test
infrastructure when testing the subversion integration that
interacts with subversion repositories served over the http://
protocol.

* ew/git-svn-http-tests:
  git svn: migrate tests to use lib-httpd
  t/t91*: do not say how to avoid the tests
This commit is contained in:
Junio C Hamano 2016-08-08 14:48:34 -07:00
commit 612c3dfb06
10 changed files with 29 additions and 90 deletions

View File

@ -65,81 +65,22 @@ svn_cmd () {
svn "$orig_svncmd" --config-dir "$svnconf" "$@" svn "$orig_svncmd" --config-dir "$svnconf" "$@"
} }
prepare_httpd () { maybe_start_httpd () {
for d in \ loc=${1-svn}
"$SVN_HTTPD_PATH" \
/usr/sbin/apache2 \
/usr/sbin/httpd \
; do
if test -f "$d"
then
SVN_HTTPD_PATH="$d"
break
fi
done
if test -z "$SVN_HTTPD_PATH"
then
echo >&2 '*** error: Apache not found'
return 1
fi
for d in \
"$SVN_HTTPD_MODULE_PATH" \
/usr/lib/apache2/modules \
/usr/libexec/apache2 \
; do
if test -d "$d"
then
SVN_HTTPD_MODULE_PATH="$d"
break
fi
done
if test -z "$SVN_HTTPD_MODULE_PATH"
then
echo >&2 '*** error: Apache module dir not found'
return 1
fi
if test ! -f "$SVN_HTTPD_MODULE_PATH/mod_dav_svn.so"
then
echo >&2 '*** error: Apache module "mod_dav_svn" not found'
return 1
fi
repo_base_path="${1-svn}" test_tristate GIT_SVN_TEST_HTTPD
mkdir "$GIT_DIR"/logs case $GIT_SVN_TEST_HTTPD in
true)
cat > "$GIT_DIR/httpd.conf" <<EOF . "$TEST_DIRECTORY"/lib-httpd.sh
ServerName "git svn test" LIB_HTTPD_SVN="$loc"
ServerRoot "$GIT_DIR" start_httpd
DocumentRoot "$GIT_DIR" ;;
PidFile "$GIT_DIR/httpd.pid" *)
LockFile logs/accept.lock stop_httpd () {
Listen 127.0.0.1:$SVN_HTTPD_PORT : noop
LoadModule dav_module $SVN_HTTPD_MODULE_PATH/mod_dav.so }
LoadModule dav_svn_module $SVN_HTTPD_MODULE_PATH/mod_dav_svn.so ;;
<Location /$repo_base_path> esac
DAV svn
SVNPath "$rawsvnrepo"
</Location>
EOF
}
start_httpd () {
if test -z "$SVN_HTTPD_PORT"
then
echo >&2 'SVN_HTTPD_PORT is not defined!'
return
fi
prepare_httpd "$1" || return 1
"$SVN_HTTPD_PATH" -f "$GIT_DIR"/httpd.conf -k start
svnrepo="http://127.0.0.1:$SVN_HTTPD_PORT/$repo_base_path"
}
stop_httpd () {
test -z "$SVN_HTTPD_PORT" && return
test ! -f "$GIT_DIR/httpd.conf" && return
"$SVN_HTTPD_PATH" -f "$GIT_DIR"/httpd.conf -k stop
} }
convert_to_rev_db () { convert_to_rev_db () {

View File

@ -24,7 +24,7 @@
# LIB_HTTPD_MODULE_PATH web server modules path # LIB_HTTPD_MODULE_PATH web server modules path
# LIB_HTTPD_PORT listening port # LIB_HTTPD_PORT listening port
# LIB_HTTPD_DAV enable DAV # LIB_HTTPD_DAV enable DAV
# LIB_HTTPD_SVN enable SVN # LIB_HTTPD_SVN enable SVN at given location (e.g. "svn")
# LIB_HTTPD_SSL enable SSL # LIB_HTTPD_SSL enable SSL
# #
# Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at> # Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at>
@ -162,8 +162,10 @@ prepare_httpd() {
if test -n "$LIB_HTTPD_SVN" if test -n "$LIB_HTTPD_SVN"
then then
HTTPD_PARA="$HTTPD_PARA -DSVN" HTTPD_PARA="$HTTPD_PARA -DSVN"
rawsvnrepo="$HTTPD_ROOT_PATH/svnrepo" LIB_HTTPD_SVNPATH="$rawsvnrepo"
svnrepo="http://127.0.0.1:$LIB_HTTPD_PORT/svn" svnrepo="http://127.0.0.1:$LIB_HTTPD_PORT/"
svnrepo="$svnrepo$LIB_HTTPD_SVN"
export LIB_HTTPD_SVN LIB_HTTPD_SVNPATH
fi fi
fi fi
} }

View File

@ -208,8 +208,8 @@ RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes]
<IfDefine SVN> <IfDefine SVN>
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule dav_svn_module modules/mod_dav_svn.so
<Location /svn> <Location /${LIB_HTTPD_SVN}>
DAV svn DAV svn
SVNPath svnrepo SVNPath "${LIB_HTTPD_SVNPATH}"
</Location> </Location>
</IfDefine> </IfDefine>

View File

@ -8,8 +8,6 @@ GIT_SVN_LC_ALL=${LC_ALL:-$LANG}
. ./lib-git-svn.sh . ./lib-git-svn.sh
say 'define NO_SVN_TESTS to skip git svn tests'
case "$GIT_SVN_LC_ALL" in case "$GIT_SVN_LC_ALL" in
*.UTF-8) *.UTF-8)
test_set_prereq UTF8 test_set_prereq UTF8

View File

@ -8,9 +8,10 @@ test_description='git svn dcommit can commit renames of files with ugly names'
. ./lib-git-svn.sh . ./lib-git-svn.sh
test_expect_success 'load repository with strange names' ' test_expect_success 'load repository with strange names' '
svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9115/funky-names.dump && svnadmin load -q "$rawsvnrepo" <"$TEST_DIRECTORY"/t9115/funky-names.dump
start_httpd gtk+ '
'
maybe_start_httpd gtk+
test_expect_success 'init and fetch repository' ' test_expect_success 'init and fetch repository' '
git svn init "$svnrepo" && git svn init "$svnrepo" &&

View File

@ -32,7 +32,7 @@ test_expect_success 'setup svnrepo' '
"$svnrepo/pr ject/branches/trailing_dotlock.lock" && "$svnrepo/pr ject/branches/trailing_dotlock.lock" &&
svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \ svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/branches/not-a@{0}reflog@" && "$svnrepo/pr ject/branches/not-a@{0}reflog@" &&
start_httpd maybe_start_httpd
' '
# SVN 1.7 will truncate "not-a%40{0]" to just "not-a". # SVN 1.7 will truncate "not-a%40{0]" to just "not-a".

View File

@ -15,7 +15,7 @@ test_expect_success 'setup svnrepo' '
svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \ svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/tags/v1" && "$svnrepo/pr ject/tags/v1" &&
rm -rf project && rm -rf project &&
start_httpd maybe_start_httpd
' '
test_expect_success 'test clone with percent escapes' ' test_expect_success 'test clone with percent escapes' '

View File

@ -18,7 +18,7 @@ test_expect_success 'setup test repository' '
svn_cmd add foo && svn_cmd add foo &&
svn_cmd commit -m "add foo" svn_cmd commit -m "add foo"
) && ) &&
start_httpd maybe_start_httpd
' '
test_expect_success 'clone trunk with "-r HEAD"' ' test_expect_success 'clone trunk with "-r HEAD"' '

View File

@ -7,8 +7,6 @@ test_description='git svn mergeinfo propagation'
. ./lib-git-svn.sh . ./lib-git-svn.sh
say 'define NO_SVN_TESTS to skip git svn tests'
test_expect_success 'initialize source svn repo' ' test_expect_success 'initialize source svn repo' '
svn_cmd mkdir -m x "$svnrepo"/trunk && svn_cmd mkdir -m x "$svnrepo"/trunk &&
svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && svn_cmd co "$svnrepo"/trunk "$SVN_TREE" &&

View File

@ -11,7 +11,6 @@ local Git repository with placeholder files.'
. ./lib-git-svn.sh . ./lib-git-svn.sh
say 'define NO_SVN_TESTS to skip git svn tests'
GIT_REPO=git-svn-repo GIT_REPO=git-svn-repo
test_expect_success 'initialize source svn repo containing empty dirs' ' test_expect_success 'initialize source svn repo containing empty dirs' '