threads / discuss / 25250

[PATCHv2 0/3] Testing installed gitweb

Subject: [PATCHv2 0/3] Testing installed gitweb

## tl;dr

4 messages between Sep 26, 2010 and Sep 26, 2010.

replies: 3people: 1as markdown or json

Jakub Narebski· Sep 26, 2010, 13:02 UTC · lore
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
Jakub Narebski· Sep 26, 2010, 13:02 UTC · re: Jakub Narebski · lore

[PATCHv2 1/3] gitweb/Makefile: Include gitweb/config.mak

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
Jakub Narebski· Sep 26, 2010, 13:02 UTC · re: Jakub Narebski · lore

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

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
Jakub Narebski· Sep 26, 2010, 13:02 UTC · re: Jakub Narebski · lore

[PATCHv2 3/3] gitweb/Makefile: Add 'test' and 'test-installed' targets

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

← back to recent threads