mirror of
https://github.com/postgres/postgres.git
synced 2025-11-25 12:03:53 +03:00
The original placement of this module in src/fe_utils/ is ill-considered,
because several src/common/ modules have dependencies on it, meaning that
libpgcommon and libpgfeutils now have mutual dependencies. That makes it
pointless to have distinct libraries at all. The intended design is that
libpgcommon is lower-level than libpgfeutils, so only dependencies from
the latter to the former are acceptable.
We already have the precedent that fe_memutils and a couple of other
modules in src/common/ are frontend-only, so it's not stretching anything
out of whack to treat logging.c as a frontend-only module in src/common/.
To the extent that such modules help provide a common frontend/backend
environment for the rest of common/ to use, it's a reasonable design.
(logging.c does not yet provide an ereport() emulation, but one can
dream.)
Hence, move these files over, and revert basically all of the build-system
changes made by commit cc8d41511. There are no places that need to grow
new dependencies on libpgcommon, further reinforcing the idea that this
is the right solution.
Discussion: https://postgr.es/m/a912ffff-f6e4-778a-c86a-cf5c47a12933@2ndquadrant.com
174 lines
5.3 KiB
Makefile
174 lines
5.3 KiB
Makefile
#-------------------------------------------------------------------------
|
|
#
|
|
# GNUmakefile--
|
|
# Makefile for src/test/regress (the regression tests)
|
|
#
|
|
# Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
|
|
# Portions Copyright (c) 1994, Regents of the University of California
|
|
#
|
|
# src/test/regress/GNUmakefile
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
PGFILEDESC = "pg_regress - test driver"
|
|
PGAPPICON = win32
|
|
|
|
subdir = src/test/regress
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
# maximum simultaneous connections for parallel tests
|
|
MAXCONNOPT =
|
|
ifdef MAX_CONNECTIONS
|
|
MAXCONNOPT += --max-connections=$(MAX_CONNECTIONS)
|
|
endif
|
|
|
|
# stuff to pass into build of pg_regress
|
|
EXTRADEFS = '-DHOST_TUPLE="$(host_tuple)"' \
|
|
'-DSHELLPROG="$(SHELL)"' \
|
|
'-DDLSUFFIX="$(DLSUFFIX)"'
|
|
|
|
##
|
|
## Prepare for tests
|
|
##
|
|
|
|
# Build regression test driver
|
|
|
|
all: pg_regress$(X)
|
|
|
|
pg_regress$(X): pg_regress.o pg_regress_main.o $(WIN32RES) | submake-libpgport
|
|
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
|
|
|
|
# dependencies ensure that path changes propagate
|
|
pg_regress.o: pg_regress.c $(top_builddir)/src/port/pg_config_paths.h
|
|
pg_regress.o: override CPPFLAGS += -I$(top_builddir)/src/port $(EXTRADEFS)
|
|
|
|
# note: because of the submake dependency, this rule's action is really a no-op
|
|
$(top_builddir)/src/port/pg_config_paths.h: | submake-libpgport
|
|
$(MAKE) -C $(top_builddir)/src/port pg_config_paths.h
|
|
|
|
install: all installdirs
|
|
$(INSTALL_PROGRAM) pg_regress$(X) '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_regress$(X)'
|
|
|
|
installdirs:
|
|
$(MKDIR_P) '$(DESTDIR)$(pgxsdir)/$(subdir)'
|
|
|
|
uninstall:
|
|
rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_regress$(X)'
|
|
|
|
|
|
# Build dynamically-loaded object file for CREATE FUNCTION ... LANGUAGE C.
|
|
|
|
NAME = regress
|
|
OBJS = $(WIN32RES) regress.o
|
|
|
|
include $(top_srcdir)/src/Makefile.shlib
|
|
|
|
all: all-lib
|
|
|
|
# Ensure parallel safety if a build is started in this directory
|
|
$(OBJS): | submake-libpgport submake-generated-headers
|
|
|
|
# Test input and expected files. These are created by pg_regress itself, so we
|
|
# don't have a rule to create them. We do need rules to clean them however.
|
|
input_files = $(patsubst $(srcdir)/input/%.source,sql/%.sql, $(wildcard $(srcdir)/input/*.source))
|
|
output_files := $(patsubst $(srcdir)/output/%.source,expected/%.out, $(wildcard $(srcdir)/output/*.source))
|
|
|
|
|
|
# not installed by default
|
|
|
|
regress_data_files = \
|
|
$(filter-out $(addprefix $(srcdir)/,$(output_files)),$(wildcard $(srcdir)/expected/*.out)) \
|
|
$(wildcard $(srcdir)/input/*.source) \
|
|
$(wildcard $(srcdir)/output/*.source) \
|
|
$(filter-out $(addprefix $(srcdir)/,$(input_files)),$(wildcard $(srcdir)/sql/*.sql)) \
|
|
$(wildcard $(srcdir)/data/*.data) \
|
|
$(srcdir)/parallel_schedule $(srcdir)/serial_schedule $(srcdir)/resultmap
|
|
|
|
install-tests: all install install-lib installdirs-tests
|
|
$(MAKE) -C $(top_builddir)/contrib/spi install
|
|
for file in $(regress_data_files); do \
|
|
$(INSTALL_DATA) $$file '$(DESTDIR)$(pkglibdir)/regress/'$$file || exit; \
|
|
done
|
|
|
|
installdirs-tests: installdirs
|
|
$(MKDIR_P) $(patsubst $(srcdir)/%/,'$(DESTDIR)$(pkglibdir)/regress/%',$(sort $(dir $(regress_data_files))))
|
|
|
|
|
|
# Get some extra C modules from contrib/spi
|
|
|
|
all: refint$(DLSUFFIX) autoinc$(DLSUFFIX)
|
|
|
|
refint$(DLSUFFIX): $(top_builddir)/contrib/spi/refint$(DLSUFFIX)
|
|
cp $< $@
|
|
|
|
autoinc$(DLSUFFIX): $(top_builddir)/contrib/spi/autoinc$(DLSUFFIX)
|
|
cp $< $@
|
|
|
|
$(top_builddir)/contrib/spi/refint$(DLSUFFIX): | submake-contrib-spi ;
|
|
|
|
$(top_builddir)/contrib/spi/autoinc$(DLSUFFIX): | submake-contrib-spi ;
|
|
|
|
submake-contrib-spi: | submake-libpgport submake-generated-headers
|
|
$(MAKE) -C $(top_builddir)/contrib/spi
|
|
|
|
.PHONY: submake-contrib-spi
|
|
|
|
# Tablespace setup
|
|
|
|
.PHONY: tablespace-setup
|
|
tablespace-setup:
|
|
rm -rf ./testtablespace
|
|
mkdir ./testtablespace
|
|
|
|
|
|
##
|
|
## Run tests
|
|
##
|
|
|
|
REGRESS_OPTS = --dlpath=. --max-concurrent-tests=20 $(EXTRA_REGRESS_OPTS)
|
|
|
|
check: all tablespace-setup
|
|
$(pg_regress_check) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(EXTRA_TESTS)
|
|
|
|
check-tests: all tablespace-setup | temp-install
|
|
$(pg_regress_check) $(REGRESS_OPTS) $(MAXCONNOPT) $(TESTS) $(EXTRA_TESTS)
|
|
|
|
installcheck: all tablespace-setup
|
|
$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/serial_schedule $(EXTRA_TESTS)
|
|
|
|
installcheck-parallel: all tablespace-setup
|
|
$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) $(EXTRA_TESTS)
|
|
|
|
installcheck-tests: all tablespace-setup
|
|
$(pg_regress_installcheck) $(REGRESS_OPTS) $(TESTS) $(EXTRA_TESTS)
|
|
|
|
standbycheck: all
|
|
$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/standby_schedule --use-existing
|
|
|
|
# old interfaces follow...
|
|
|
|
runcheck: check
|
|
runtest: installcheck
|
|
runtest-parallel: installcheck-parallel
|
|
|
|
bigtest: all tablespace-setup
|
|
$(pg_regress_installcheck) $(REGRESS_OPTS) --schedule=$(srcdir)/serial_schedule numeric_big
|
|
|
|
bigcheck: all tablespace-setup | temp-install
|
|
$(pg_regress_check) $(REGRESS_OPTS) --schedule=$(srcdir)/parallel_schedule $(MAXCONNOPT) numeric_big
|
|
|
|
|
|
##
|
|
## Clean up
|
|
##
|
|
|
|
clean distclean maintainer-clean: clean-lib
|
|
# things built by `all' target
|
|
rm -f $(OBJS) refint$(DLSUFFIX) autoinc$(DLSUFFIX)
|
|
rm -f pg_regress_main.o pg_regress.o pg_regress$(X)
|
|
# things created by various check targets
|
|
rm -f $(output_files) $(input_files)
|
|
rm -rf testtablespace
|
|
rm -rf $(pg_regress_clean_files)
|