aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2009-08-07 20:50:22 +0000
committerPeter Eisentraut <peter_e@gmx.net>2009-08-07 20:50:22 +0000
commit7798147a7642521055f48e1b27b7024c46c6b446 (patch)
tree4464257703236148eee73a44244b5bc10f6b6f95 /src
parente605fbcccdf4705de4afa7e23be5b8222e1cb00d (diff)
downloadpostgresql-7798147a7642521055f48e1b27b7024c46c6b446.tar.gz
postgresql-7798147a7642521055f48e1b27b7024c46c6b446.zip
Expand test coverage support to entire tree
Test coverage support now covers the entire source tree, including contrib, instead of just src/backend. In a related but independent development, the commands make coverage and make coverage-html can be run in any directory. This turned out to be much easier than feared. Besides a few ad hoc fixes to pass the make target down the tree, change all affected makefiles to list their directories in the SUBDIRS variable, changed from variants like DIRS and WANTED_DIRS. MSVC build fix was attempted as well.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile11
-rw-r--r--src/Makefile.global.in12
-rw-r--r--src/backend/common.mk8
-rw-r--r--src/backend/utils/mb/conversion_procs/Makefile12
-rw-r--r--src/bin/Makefile8
-rw-r--r--src/interfaces/Makefile6
-rw-r--r--src/pl/Makefile14
-rw-r--r--src/pl/plpgsql/Makefile4
-rw-r--r--src/tools/msvc/Mkvcbuild.pm4
9 files changed, 46 insertions, 33 deletions
diff --git a/src/Makefile b/src/Makefile
index 7b00776c4bd..8c869573bf6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/Makefile,v 1.45 2009/02/24 10:06:32 petere Exp $
+# $PostgreSQL: pgsql/src/Makefile,v 1.46 2009/08/07 20:50:22 petere Exp $
#
#-------------------------------------------------------------------------
@@ -73,5 +73,14 @@ distclean maintainer-clean:
$(MAKE) -C test/thread $@
rm -f Makefile.port Makefile.global
+coverage:
+ $(MAKE) -C timezone $@
+ $(MAKE) -C backend $@
+ $(MAKE) -C backend/utils/mb/conversion_procs $@
+ $(MAKE) -C backend/snowball $@
+ $(MAKE) -C interfaces $@
+ $(MAKE) -C bin $@
+ $(MAKE) -C pl $@
+
.PHONY: install-local installdirs-local uninstall-local
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 04f3b1a7dd8..441de314873 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.255 2009/08/04 22:04:37 petere Exp $
+# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.256 2009/08/07 20:50:22 petere Exp $
#------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets,
@@ -617,12 +617,22 @@ lcov.info: $(gcda_files)
%.c.gcov: %.gcda | lcov.info
$(GCOV) -b -f -p -o . $(GCOVFLAGS) $*.c >$*.c.gcov.out
+coverage: $(gcda_files:.gcda=.c.gcov) lcov.info
+ $(if $(SUBDIRS),for dir in $(SUBDIRS); do $(MAKE) -C $$dir coverage || exit; done)
+
+.PHONY: coverage-html
+coverage-html: coverage
+ rm -rf coverage
+ mkdir coverage
+ $(GENHTML) --show-details --legend --output-directory=coverage --title=PostgreSQL --num-spaces=4 --prefix=$(abs_top_srcdir) `find . -name lcov.info -print`
+
# hook for clean-up
clean distclean maintainer-clean: clean-coverage
.PHONY: clean-coverage
clean-coverage:
+ rm -rf coverage
rm -f *.gcda *.gcno lcov.info *.gcov *.gcov.out
diff --git a/src/backend/common.mk b/src/backend/common.mk
index c617c672765..f4de2fe53d5 100644
--- a/src/backend/common.mk
+++ b/src/backend/common.mk
@@ -1,7 +1,7 @@
#
# Common make rules for backend
#
-# $PostgreSQL: pgsql/src/backend/common.mk,v 1.8 2008/09/05 12:11:18 petere Exp $
+# $PostgreSQL: pgsql/src/backend/common.mk,v 1.9 2009/08/07 20:50:22 petere Exp $
#
# When including this file, set OBJS to the object files created in
@@ -46,9 +46,3 @@ ifdef SUBDIRS
for dir in $(SUBDIRS); do $(MAKE) -C $$dir clean || exit; done
endif
rm -f $(subsysfilename) $(OBJS)
-
-
-coverage: $(gcda_files:.gcda=.c.gcov) lcov.info
-ifdef SUBDIRS
- for dir in $(SUBDIRS); do $(MAKE) -C $$dir coverage || exit; done
-endif
diff --git a/src/backend/utils/mb/conversion_procs/Makefile b/src/backend/utils/mb/conversion_procs/Makefile
index 2d0b37564a0..17b5f715035 100644
--- a/src/backend/utils/mb/conversion_procs/Makefile
+++ b/src/backend/utils/mb/conversion_procs/Makefile
@@ -4,7 +4,7 @@
# Makefile for utils/mb/conversion_procs
#
# IDENTIFICATION
-# $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/Makefile,v 1.21 2009/02/10 19:29:39 petere Exp $
+# $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/Makefile,v 1.22 2009/08/07 20:50:22 petere Exp $
#
#-------------------------------------------------------------------------
@@ -17,7 +17,7 @@ SQLSCRIPT = conversion_create.sql
# This file can be placed as src/test/regress/conversion.sql
REGRESSION_SCRIPT = conversion.sql
-DIRS = \
+SUBDIRS = \
ascii_and_mic cyrillic_and_mic euc_cn_and_mic euc_jp_and_sjis \
euc_kr_and_mic euc_tw_and_big5 latin2_and_win1250 latin_and_mic \
utf8_and_ascii utf8_and_big5 utf8_and_cyrillic utf8_and_euc_cn \
@@ -162,7 +162,7 @@ CONVERSIONS = \
shift_jis_2004_to_euc_jis_2004 SHIFT_JIS_2004 EUC_JIS_2004 shift_jis_2004_to_euc_jis_2004 euc_jis_2004_and_shift_jis_2004
all: $(SQLSCRIPT)
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
$(SQLSCRIPT): Makefile
ifeq ($(enable_shared), yes)
@@ -205,16 +205,16 @@ $(REGRESSION_SCRIPT): Makefile
install: $(SQLSCRIPT) installdirs
$(INSTALL_DATA) $(SQLSCRIPT) '$(DESTDIR)$(datadir)'
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
installdirs:
$(mkinstalldirs) '$(DESTDIR)$(datadir)' '$(DESTDIR)$(pkglibdir)'
uninstall:
rm -f '$(DESTDIR)$(datadir)/$(SQLSCRIPT)'
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
clean distclean maintainer-clean:
rm -f $(SQLSCRIPT)
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
diff --git a/src/bin/Makefile b/src/bin/Makefile
index e4932527713..1fa4dfd2842 100644
--- a/src/bin/Makefile
+++ b/src/bin/Makefile
@@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/bin/Makefile,v 1.54 2009/01/01 17:23:53 momjian Exp $
+# $PostgreSQL: pgsql/src/bin/Makefile,v 1.55 2009/08/07 20:50:22 petere Exp $
#
#-------------------------------------------------------------------------
@@ -13,11 +13,11 @@ subdir = src/bin
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
-DIRS = initdb pg_ctl pg_dump \
+SUBDIRS = initdb pg_ctl pg_dump \
psql scripts pg_config pg_controldata pg_resetxlog
ifeq ($(PORTNAME), win32)
-DIRS+=pgevent
+SUBDIRS+=pgevent
endif
all install installdirs uninstall distprep clean distclean maintainer-clean:
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
diff --git a/src/interfaces/Makefile b/src/interfaces/Makefile
index dd57c18c3ed..09ca0c2bb89 100644
--- a/src/interfaces/Makefile
+++ b/src/interfaces/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/interfaces/Makefile,v 1.56 2008/03/18 16:24:50 petere Exp $
+# $PostgreSQL: pgsql/src/interfaces/Makefile,v 1.57 2009/08/07 20:50:22 petere Exp $
#
#-------------------------------------------------------------------------
@@ -12,7 +12,7 @@ subdir = src/interfaces
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
-DIRS = libpq ecpg
+SUBDIRS = libpq ecpg
all install installdirs uninstall distprep clean distclean maintainer-clean:
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
diff --git a/src/pl/Makefile b/src/pl/Makefile
index fa06459a9b5..cfaeddea9f9 100644
--- a/src/pl/Makefile
+++ b/src/pl/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/pl/Makefile,v 1.27 2008/03/18 16:24:50 petere Exp $
+# $PostgreSQL: pgsql/src/pl/Makefile,v 1.28 2009/08/07 20:50:22 petere Exp $
#
#-------------------------------------------------------------------------
@@ -12,26 +12,26 @@ subdir = src/pl
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
-DIRS = plpgsql
+SUBDIRS = plpgsql
ifeq ($(with_perl), yes)
-DIRS += plperl
+SUBDIRS += plperl
endif
ifeq ($(with_python), yes)
-DIRS += plpython
+SUBDIRS += plpython
endif
ifeq ($(with_tcl), yes)
-DIRS += tcl
+SUBDIRS += tcl
endif
all install installdirs uninstall distprep clean distclean maintainer-clean:
- @for dir in $(DIRS); do $(MAKE) -C $$dir $@ || exit; done
+ @for dir in $(SUBDIRS); do $(MAKE) -C $$dir $@ || exit; done
# We'd like check operations to run all the subtests before failing.
check installcheck:
- @CHECKERR=0; for dir in $(DIRS); do \
+ @CHECKERR=0; for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir $@ || CHECKERR=$$?; \
done; \
exit $$CHECKERR
diff --git a/src/pl/plpgsql/Makefile b/src/pl/plpgsql/Makefile
index 2f1298c2582..0c5dd72f2d8 100644
--- a/src/pl/plpgsql/Makefile
+++ b/src/pl/plpgsql/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $PostgreSQL: pgsql/src/pl/plpgsql/Makefile,v 1.9 2008/03/18 16:24:50 petere Exp $
+# $PostgreSQL: pgsql/src/pl/plpgsql/Makefile,v 1.10 2009/08/07 20:50:22 petere Exp $
#
#-------------------------------------------------------------------------
@@ -12,5 +12,5 @@ subdir = src/pl/plpgsql
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-all install installdirs uninstall distprep clean distclean maintainer-clean:
+all install installdirs uninstall distprep clean distclean maintainer-clean coverage:
$(MAKE) -C src $@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index dfc29ea8444..6359f1861e5 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -3,7 +3,7 @@ package Mkvcbuild;
#
# Package that generates build files for msvc build
#
-# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.41 2009/07/16 17:43:52 tgl Exp $
+# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.42 2009/08/07 20:50:22 petere Exp $
#
use Carp;
use Win32;
@@ -321,7 +321,7 @@ sub mkvcbuild
$mf = Project::read_file('src\backend\utils\mb\conversion_procs\Makefile');
$mf =~ s{\\s*[\r\n]+}{}mg;
- $mf =~ m{DIRS\s*=\s*(.*)$}m || die 'Could not match in conversion makefile' . "\n";
+ $mf =~ m{SUBDIRS\s*=\s*(.*)$}m || die 'Could not match in conversion makefile' . "\n";
foreach my $sub (split /\s+/,$1)
{
my $mf = Project::read_file('src\backend\utils\mb\conversion_procs\\' . $sub . '\Makefile');