git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCHv2 2/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED
  2010-09-22 14:21 [PATCH 0/3] Testing installed gitweb Jakub Narebski
@ 2010-09-22 14:21 ` Jakub Narebski
  0 siblings, 0 replies; 5+ messages in thread
From: Jakub Narebski @ 2010-09-22 14:21 UTC (permalink / raw
  To: git; +Cc: Jakub Narebski

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, or to the pathname of installed gitweb
script, 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).

If GITWEB_TEST_INSTALLED is used, print what script are we testing
to make it easy to spot that we test installed gitweb.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This patch differs from previous version, send to git mailing list as
http://thread.gmane.org/gmane.comp.version-control.git/156023/focus=156025
in the following way:

* It is no longer marked as RFC, as it was decided that description of
  GITWEB_TEST_INSTALLED in t/gitweb-lib.sh is enough, and there is no
  need to mention this variable in some of t/README, gitweb/README, or
  gitweb/INSTALL

* GITWEB_TEST_INSTALLED can be either directory where gitweb.cgi is
  installed, or a path to gitweb.cgi

* t/test-lib.sh now prints where resides gitweb.cgi it is testing if
  GITWEB_TEST_INSTALLED is set.


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

diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh
index 8c490c8..8b5b987 100755
--- a/t/gitweb-lib.sh
+++ b/t/gitweb-lib.sh
@@ -32,17 +32,34 @@ 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,
+	# or simply to pathname of installed gitweb script.
+	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."
+		say "# Testing $SCRIPT_NAME"
+	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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCHv2 0/3] Testing installed gitweb
@ 2010-09-26 13:02 Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 1/3] gitweb/Makefile: Include gitweb/config.mak Jakub Narebski
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Jakub Narebski @ 2010-09-26 13:02 UTC (permalink / raw
  To: git; +Cc: Jakub Narebski

This series add a mechanism to easy test installed gitweb, via

  $ make -C gitweb test-installed

This way we can check if the install procedure work correctly, when
gitweb gets split into smaller modules.

This series applies on top of 'jn/gitweb-test-lib' branch, merged as
4621733 into next, i.e. on top of commit 89d1b5b (t/gitweb-lib.sh: Use
tabs for indent consistently, 2010-09-12).


The major change from previous version is that 'test-installed' target
no longer depends on 'install', which means that it doesn't force
installing gitweb each time it is run.


Jakub Narebski (3):
  gitweb/Makefile: Include gitweb/config.mak
  t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED
  gitweb/Makefile: Add 'test' and 'test-installed' targets

 gitweb/Makefile |   12 +++++++++++-
 t/Makefile      |    4 ++++
 t/gitweb-lib.sh |   21 +++++++++++++++++++--
 3 files changed, 34 insertions(+), 3 deletions(-)

-- 
1.7.3

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCHv2 1/3] gitweb/Makefile: Include gitweb/config.mak
  2010-09-26 13:02 [PATCHv2 0/3] Testing installed gitweb Jakub Narebski
@ 2010-09-26 13:02 ` Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 2/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 3/3] gitweb/Makefile: Add 'test' and 'test-installed' targets Jakub Narebski
  2 siblings, 0 replies; 5+ messages in thread
From: Jakub Narebski @ 2010-09-26 13:02 UTC (permalink / raw
  To: git; +Cc: Jakub Narebski

Allow for gitweb-specific Makefile config to reside in config.mak file
in the 'gitweb/' subdirectory.  This means that gitweb-specific
build-time configuration variable can reside in gitweb-specific
gitweb/config.mak

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
No longer RFC, but it can still be safely dropped from this series.

 gitweb/Makefile |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/gitweb/Makefile b/gitweb/Makefile
index 2fb7c2d..88bcf08 100644
--- a/gitweb/Makefile
+++ b/gitweb/Makefile
@@ -39,6 +39,7 @@ GITWEB_SITE_FOOTER =
 # include user config
 -include ../config.mak.autogen
 -include ../config.mak
+-include config.mak
 
 # determine version
 ../GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCHv2 2/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED
  2010-09-26 13:02 [PATCHv2 0/3] Testing installed gitweb Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 1/3] gitweb/Makefile: Include gitweb/config.mak Jakub Narebski
@ 2010-09-26 13:02 ` Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 3/3] gitweb/Makefile: Add 'test' and 'test-installed' targets Jakub Narebski
  2 siblings, 0 replies; 5+ messages in thread
From: Jakub Narebski @ 2010-09-26 13:02 UTC (permalink / raw
  To: git; +Cc: Jakub Narebski

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, or to the pathname of installed gitweb
script, 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).

If GITWEB_TEST_INSTALLED is used, print what script are we testing
to make it easy to spot that we test installed gitweb.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
No change from previous version.

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

diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh
index 8c490c8..8b5b987 100755
--- a/t/gitweb-lib.sh
+++ b/t/gitweb-lib.sh
@@ -32,17 +32,34 @@ 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,
+	# or simply to pathname of installed gitweb script.
+	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."
+		say "# Testing $SCRIPT_NAME"
+	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.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCHv2 3/3] gitweb/Makefile: Add 'test' and 'test-installed' targets
  2010-09-26 13:02 [PATCHv2 0/3] Testing installed gitweb Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 1/3] gitweb/Makefile: Include gitweb/config.mak Jakub Narebski
  2010-09-26 13:02 ` [PATCHv2 2/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED Jakub Narebski
@ 2010-09-26 13:02 ` Jakub Narebski
  2 siblings, 0 replies; 5+ messages in thread
From: Jakub Narebski @ 2010-09-26 13:02 UTC (permalink / raw
  To: git; +Cc: Jakub Narebski

The 'test-installed' target in gitweb/Makefile tests installed gitweb,
using the same destination directory that 'install' target uses.

The 'test' target is just a convenience wrapper invoking 'gitweb-test'
target of t/Makefile.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
Changes from previous version:

* 'test-installed' no longer has 'install' as requirement, which means that
  testing installed target does not force an install.  We cannot check easily
  and reliably that install is fresh.

* Added 'test' convenience target.

* Moved "Testing rules" section before "Installation rules", the way it is done
  in main Makefile.

 gitweb/Makefile |   11 ++++++++++-
 t/Makefile      |    4 ++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/gitweb/Makefile b/gitweb/Makefile
index 88bcf08..df908a1 100644
--- a/gitweb/Makefile
+++ b/gitweb/Makefile
@@ -144,6 +144,15 @@ gitweb.cgi: gitweb.perl GITWEB-BUILD-OPTIONS
 	chmod +x $@+ && \
 	mv $@+ $@
 
+### Testing rules
+
+test:
+	$(MAKE) -C ../t gitweb-test
+
+test-installed:
+	GITWEB_TEST_INSTALLED='$(DESTDIR_SQ)$(gitwebdir_SQ)' \
+		$(MAKE) -C ../t gitweb-test
+
 ### Installation rules
 
 install: all
@@ -157,5 +166,5 @@ install: all
 clean:
 	$(RM) gitweb.cgi static/gitweb.min.js static/gitweb.min.css GITWEB-BUILD-OPTIONS
 
-.PHONY: all clean install .FORCE-GIT-VERSION-FILE FORCE
+.PHONY: all clean install test test-installed .FORCE-GIT-VERSION-FILE FORCE
 
diff --git a/t/Makefile b/t/Makefile
index c7baefb..7aa409a 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -17,6 +17,7 @@ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
 
 T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
 TSVN = $(wildcard t91[0-9][0-9]-*.sh)
+TGITWEB = $(wildcard t95[0-9][0-9]-*.sh)
 
 all: pre-clean
 	$(MAKE) aggregate-results-and-cleanup
@@ -46,6 +47,9 @@ full-svn-test:
 	$(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C
 	$(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8
 
+gitweb-test:
+	$(MAKE) $(TGITWEB)
+
 valgrind:
 	GIT_TEST_OPTS=--valgrind $(MAKE)
 
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-09-26 13:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-26 13:02 [PATCHv2 0/3] Testing installed gitweb Jakub Narebski
2010-09-26 13:02 ` [PATCHv2 1/3] gitweb/Makefile: Include gitweb/config.mak Jakub Narebski
2010-09-26 13:02 ` [PATCHv2 2/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED Jakub Narebski
2010-09-26 13:02 ` [PATCHv2 3/3] gitweb/Makefile: Add 'test' and 'test-installed' targets Jakub Narebski
  -- strict thread matches above, loose matches on Subject: below --
2010-09-22 14:21 [PATCH 0/3] Testing installed gitweb Jakub Narebski
2010-09-22 14:21 ` [PATCHv2 2/3] t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED Jakub Narebski

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).