git svn: migrate tests to use lib-httpd
This allows us to use common test infrastructure and parallelize the tests. For now, GIT_SVN_TEST_HTTPD=true needs to be set to enable the SVN HTTP tests because we reuse the same test cases for both file:// and http:// SVN repositories. SVN_HTTPD_PORT is no longer honored. Tested under Apache 2.2 and 2.4 on Debian 7.x (wheezy) and 8.x (jessie), respectively. Cc: Clemens Buchacher <drizzd@aon.at> Cc: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7b232add79
commit
a8a5d25118
@ -68,81 +68,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 () {
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -192,8 +192,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>
|
||||||
|
@ -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" &&
|
||||||
|
@ -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".
|
||||||
|
@ -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' '
|
||||||
|
@ -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"' '
|
||||||
|
Loading…
Reference in New Issue
Block a user