Subject: [RFC/PATCHv2 3/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED

From: Jakub Narebski <[email-masked]>
Date: Thu, 16 Sep 2010 21:58:17 +0200

You can set the GITWEB_TEST_INSTALLED environment variable to the
gitwebdir (the directory where gitweb is installed / deployed to) of
an existing gitweb instalation to test that installation.

This change is intended to make it possible to test that process of
installing gitweb and the modules it depends on works correctly (after
splitting gitweb).

Signed-off-by: Jakub Narebski <[email-masked]>
---
Jakub Narebski wrote:
> On Sun, 12 Sep 2010, Junio C Hamano wrote:
> > Jakub Narebski <[email-masked]> writes:

> > > +	# You can set the GITWEB_TEST_INSTALLED environment variable to
> > > +	# the gitwebdir (the directory where gitweb is installed / deployed to)
> > > +	# of an existing gitweb instalation to test that installation.
> > > +	if test -n "$GITWEB_TEST_INSTALLED" ; then
> > > +		SCRIPT_NAME="$GITWEB_TEST_INSTALLED/gitweb.cgi"
> > > +		test -f "$SCRIPT_NAME" ||
> > > +		error "Cannot find gitweb.cgi at $GITWEB_TEST_INSTALLED."
> > 
> > I don't know if GIT_WEB_TEST_INSTALLED=/path/to/some/directory (naming the
> > directory that houses the script which must be named gitweb.cgi) is easier
> > to use than GIT_WEB_TEST_INSTALLED=/path/to/some/gitweb.perl (naming the
> > script that is allowed to be renamed).
> 
> First, I was following what GIT_TEST_INSTALLED does (it points to bindir,
> not to git binary).  Second, I had half of idea to also change paths to
> static files... but they are not used anyway, at least not currently
> (no check for links).
> 
> Anyway we can support both situations, slightly similarly to how
> GIT_TRACE can have different kinds of values.

And this implements it.

It is an RFC because it is not well tested... and I have forgot
to update comment about GITWEB_TEST_INSTALLED and the commit message.

 t/gitweb-lib.sh |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh
index 8c490c8..b76ec4d 100755
--- a/t/gitweb-lib.sh
+++ b/t/gitweb-lib.sh
@@ -32,17 +32,32 @@ EOF
 	cat >.git/description <<EOF
 $0 test repository
 EOF
+
+	# You can set the GITWEB_TEST_INSTALLED environment variable to
+	# the gitwebdir (the directory where gitweb is installed / deployed to)
+	# of an existing gitweb instalation to test that installation.
+	if test -n "$GITWEB_TEST_INSTALLED" ; then
+		if test -d $GITWEB_TEST_INSTALLED; then
+			SCRIPT_NAME="$GITWEB_TEST_INSTALLED/gitweb.cgi"
+		else
+			SCRIPT_NAME="$GITWEB_TEST_INSTALLED"
+		fi
+		test -f "$SCRIPT_NAME" ||
+		error "Cannot find gitweb at $GITWEB_TEST_INSTALLED."
+	else # normal case, use source version of gitweb
+		SCRIPT_NAME="$GIT_BUILD_DIR/gitweb/gitweb.perl"
+	fi
+	export SCRIPT_NAME
 }
 
 gitweb_run () {
 	GATEWAY_INTERFACE='CGI/1.1'
 	HTTP_ACCEPT='*/*'
 	REQUEST_METHOD='GET'
-	SCRIPT_NAME="$GIT_BUILD_DIR/gitweb/gitweb.perl"
 	QUERY_STRING=""$1""
 	PATH_INFO=""$2""
 	export GATEWAY_INTERFACE HTTP_ACCEPT REQUEST_METHOD \
-		SCRIPT_NAME QUERY_STRING PATH_INFO
+		QUERY_STRING PATH_INFO
 
 	GITWEB_CONFIG=$(pwd)/gitweb_config.perl
 	export GITWEB_CONFIG
-- 
1.7.2.1