diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2009-08-07 20:50:22 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2009-08-07 20:50:22 +0000 |
commit | 7798147a7642521055f48e1b27b7024c46c6b446 (patch) | |
tree | 4464257703236148eee73a44244b5bc10f6b6f95 /src | |
parent | e605fbcccdf4705de4afa7e23be5b8222e1cb00d (diff) | |
download | postgresql-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/Makefile | 11 | ||||
-rw-r--r-- | src/Makefile.global.in | 12 | ||||
-rw-r--r-- | src/backend/common.mk | 8 | ||||
-rw-r--r-- | src/backend/utils/mb/conversion_procs/Makefile | 12 | ||||
-rw-r--r-- | src/bin/Makefile | 8 | ||||
-rw-r--r-- | src/interfaces/Makefile | 6 | ||||
-rw-r--r-- | src/pl/Makefile | 14 | ||||
-rw-r--r-- | src/pl/plpgsql/Makefile | 4 | ||||
-rw-r--r-- | src/tools/msvc/Mkvcbuild.pm | 4 |
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'); |