mirror of
https://github.com/postgres/postgres.git
synced 2026-04-23 07:07:22 -04:00
Instead of connecting to the server with psql to check if it is ready for running tests, this changes pg_regress to use PQPing which avoids performing system() calls which are expensive on some platforms, like Windows. The frequency of tests is also increased in order to connect to the server faster. This patch is part of a larger effort to make testing consume fewer resources in order to be able to fit more tests into the available CI system constraints. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/20230823192239.jxew5s3sjru63lio@awork3.anarazel.de
80 lines
2.6 KiB
Makefile
80 lines
2.6 KiB
Makefile
#
|
|
# Makefile for isolation tests
|
|
#
|
|
|
|
PGFILEDESC = "pg_isolation_regress/isolationtester - multi-client test driver"
|
|
PGAPPICON = win32
|
|
|
|
subdir = src/test/isolation
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
override CPPFLAGS := -I. -I$(srcdir) -I$(libpq_srcdir) \
|
|
-I$(srcdir)/../regress $(CPPFLAGS)
|
|
|
|
OBJS = \
|
|
$(WIN32RES) \
|
|
isolationtester.o \
|
|
specparse.o \
|
|
specscanner.o
|
|
|
|
all: isolationtester$(X) pg_isolation_regress$(X)
|
|
|
|
install: all installdirs
|
|
$(INSTALL_PROGRAM) pg_isolation_regress$(X) '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_isolation_regress$(X)'
|
|
$(INSTALL_PROGRAM) isolationtester$(X) '$(DESTDIR)$(pgxsdir)/$(subdir)/isolationtester$(X)'
|
|
|
|
installdirs:
|
|
$(MKDIR_P) '$(DESTDIR)$(pgxsdir)/$(subdir)'
|
|
|
|
uninstall:
|
|
rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_isolation_regress$(X)'
|
|
rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/isolationtester$(X)'
|
|
|
|
submake-regress:
|
|
$(MAKE) -C $(top_builddir)/src/test/regress pg_regress.o
|
|
|
|
pg_regress.o: | submake-regress
|
|
rm -f $@ && $(LN_S) $(top_builddir)/src/test/regress/pg_regress.o .
|
|
|
|
pg_isolation_regress$(X): isolation_main.o pg_regress.o $(WIN32RES)
|
|
$(CC) $(CFLAGS) $^ $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
|
|
|
|
isolationtester$(X): $(OBJS) | submake-libpq submake-libpgport
|
|
$(CC) $(CFLAGS) $^ $(libpq_pgport) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
|
|
|
|
distprep: specparse.c specscanner.c
|
|
|
|
# See notes in src/backend/parser/Makefile about the following two rules
|
|
specparse.h: specparse.c
|
|
touch $@
|
|
|
|
specparse.c: BISONFLAGS += -d
|
|
|
|
# Force these dependencies to be known even without dependency info built:
|
|
specparse.o specscanner.o: specparse.h
|
|
|
|
# specparse.c and specscanner.c are in the distribution tarball,
|
|
# so do not clean them here
|
|
clean distclean:
|
|
rm -f isolationtester$(X) pg_isolation_regress$(X) $(OBJS) isolation_main.o
|
|
rm -f pg_regress.o
|
|
rm -rf $(pg_regress_clean_files)
|
|
|
|
maintainer-clean: distclean
|
|
rm -f specparse.h specparse.c specscanner.c
|
|
|
|
installcheck: all
|
|
$(pg_isolation_regress_installcheck) --schedule=$(srcdir)/isolation_schedule
|
|
|
|
check: all
|
|
$(pg_isolation_regress_check) --schedule=$(srcdir)/isolation_schedule
|
|
|
|
# Non-default tests. It only makes sense to run these if set up to use
|
|
# prepared transactions, via TEMP_CONFIG for the check case, or via the
|
|
# postgresql.conf for the installcheck case.
|
|
installcheck-prepared-txns: all temp-install
|
|
$(pg_isolation_regress_installcheck) --schedule=$(srcdir)/isolation_schedule prepared-transactions prepared-transactions-cic
|
|
|
|
check-prepared-txns: all temp-install
|
|
$(pg_isolation_regress_check) --schedule=$(srcdir)/isolation_schedule prepared-transactions prepared-transactions-cic
|