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:
		@ -65,81 +65,22 @@ svn_cmd () {
 | 
			
		||||
	svn "$orig_svncmd" --config-dir "$svnconf" "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
prepare_httpd () {
 | 
			
		||||
	for d in \
 | 
			
		||||
		"$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
 | 
			
		||||
maybe_start_httpd () {
 | 
			
		||||
	loc=${1-svn}
 | 
			
		||||
 | 
			
		||||
	repo_base_path="${1-svn}"
 | 
			
		||||
	mkdir "$GIT_DIR"/logs
 | 
			
		||||
 | 
			
		||||
	cat > "$GIT_DIR/httpd.conf" <<EOF
 | 
			
		||||
ServerName "git svn test"
 | 
			
		||||
ServerRoot "$GIT_DIR"
 | 
			
		||||
DocumentRoot "$GIT_DIR"
 | 
			
		||||
PidFile "$GIT_DIR/httpd.pid"
 | 
			
		||||
LockFile logs/accept.lock
 | 
			
		||||
Listen 127.0.0.1:$SVN_HTTPD_PORT
 | 
			
		||||
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>
 | 
			
		||||
	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
 | 
			
		||||
	test_tristate GIT_SVN_TEST_HTTPD
 | 
			
		||||
	case $GIT_SVN_TEST_HTTPD in
 | 
			
		||||
	true)
 | 
			
		||||
		. "$TEST_DIRECTORY"/lib-httpd.sh
 | 
			
		||||
		LIB_HTTPD_SVN="$loc"
 | 
			
		||||
		start_httpd
 | 
			
		||||
		;;
 | 
			
		||||
	*)
 | 
			
		||||
		stop_httpd () {
 | 
			
		||||
			: noop
 | 
			
		||||
		}
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
convert_to_rev_db () {
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@
 | 
			
		||||
#    LIB_HTTPD_MODULE_PATH       web server modules path
 | 
			
		||||
#    LIB_HTTPD_PORT              listening port
 | 
			
		||||
#    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
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2008 Clemens Buchacher <drizzd@aon.at>
 | 
			
		||||
@ -162,8 +162,10 @@ prepare_httpd() {
 | 
			
		||||
		if test -n "$LIB_HTTPD_SVN"
 | 
			
		||||
		then
 | 
			
		||||
			HTTPD_PARA="$HTTPD_PARA -DSVN"
 | 
			
		||||
			rawsvnrepo="$HTTPD_ROOT_PATH/svnrepo"
 | 
			
		||||
			svnrepo="http://127.0.0.1:$LIB_HTTPD_PORT/svn"
 | 
			
		||||
			LIB_HTTPD_SVNPATH="$rawsvnrepo"
 | 
			
		||||
			svnrepo="http://127.0.0.1:$LIB_HTTPD_PORT/"
 | 
			
		||||
			svnrepo="$svnrepo$LIB_HTTPD_SVN"
 | 
			
		||||
			export LIB_HTTPD_SVN LIB_HTTPD_SVNPATH
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -208,8 +208,8 @@ RewriteRule ^/half-auth-complete/ - [E=AUTHREQUIRED:yes]
 | 
			
		||||
<IfDefine SVN>
 | 
			
		||||
	LoadModule dav_svn_module modules/mod_dav_svn.so
 | 
			
		||||
 | 
			
		||||
	<Location /svn>
 | 
			
		||||
	<Location /${LIB_HTTPD_SVN}>
 | 
			
		||||
		DAV svn
 | 
			
		||||
		SVNPath svnrepo
 | 
			
		||||
		SVNPath "${LIB_HTTPD_SVNPATH}"
 | 
			
		||||
	</Location>
 | 
			
		||||
</IfDefine>
 | 
			
		||||
 | 
			
		||||
@ -8,8 +8,6 @@ GIT_SVN_LC_ALL=${LC_ALL:-$LANG}
 | 
			
		||||
 | 
			
		||||
. ./lib-git-svn.sh
 | 
			
		||||
 | 
			
		||||
say 'define NO_SVN_TESTS to skip git svn tests'
 | 
			
		||||
 | 
			
		||||
case "$GIT_SVN_LC_ALL" in
 | 
			
		||||
*.UTF-8)
 | 
			
		||||
	test_set_prereq UTF8
 | 
			
		||||
 | 
			
		||||
@ -8,9 +8,10 @@ test_description='git svn dcommit can commit renames of files with ugly names'
 | 
			
		||||
. ./lib-git-svn.sh
 | 
			
		||||
 | 
			
		||||
test_expect_success 'load repository with strange names' '
 | 
			
		||||
	svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9115/funky-names.dump &&
 | 
			
		||||
	start_httpd gtk+
 | 
			
		||||
	'
 | 
			
		||||
	svnadmin load -q "$rawsvnrepo" <"$TEST_DIRECTORY"/t9115/funky-names.dump
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
maybe_start_httpd gtk+
 | 
			
		||||
 | 
			
		||||
test_expect_success 'init and fetch repository' '
 | 
			
		||||
	git svn init "$svnrepo" &&
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,7 @@ test_expect_success 'setup svnrepo' '
 | 
			
		||||
			"$svnrepo/pr ject/branches/trailing_dotlock.lock" &&
 | 
			
		||||
	svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \
 | 
			
		||||
			"$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".
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ test_expect_success 'setup svnrepo' '
 | 
			
		||||
	svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \
 | 
			
		||||
	  "$svnrepo/pr ject/tags/v1" &&
 | 
			
		||||
	rm -rf project &&
 | 
			
		||||
	start_httpd
 | 
			
		||||
	maybe_start_httpd
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'test clone with percent escapes' '
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ test_expect_success 'setup test repository' '
 | 
			
		||||
		svn_cmd add foo &&
 | 
			
		||||
		svn_cmd commit -m "add foo"
 | 
			
		||||
	) &&
 | 
			
		||||
	start_httpd
 | 
			
		||||
	maybe_start_httpd
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'clone trunk with "-r HEAD"' '
 | 
			
		||||
 | 
			
		||||
@ -7,8 +7,6 @@ test_description='git svn mergeinfo propagation'
 | 
			
		||||
 | 
			
		||||
. ./lib-git-svn.sh
 | 
			
		||||
 | 
			
		||||
say 'define NO_SVN_TESTS to skip git svn tests'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'initialize source svn repo' '
 | 
			
		||||
	svn_cmd mkdir -m x "$svnrepo"/trunk &&
 | 
			
		||||
	svn_cmd co "$svnrepo"/trunk "$SVN_TREE" &&
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,6 @@ local Git repository with placeholder files.'
 | 
			
		||||
 | 
			
		||||
. ./lib-git-svn.sh
 | 
			
		||||
 | 
			
		||||
say 'define NO_SVN_TESTS to skip git svn tests'
 | 
			
		||||
GIT_REPO=git-svn-repo
 | 
			
		||||
 | 
			
		||||
test_expect_success 'initialize source svn repo containing empty dirs' '
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user