From 21980b43b8f415773d889745f7156985992e219c Mon Sep 17 00:00:00 2001 From: Tom Krizek Date: Mon, 7 Aug 2023 16:59:11 +0200 Subject: [PATCH] Compile system test binaries during make Using check_PROGRAMS would postpone compiling the binaries needed by system tests until `make check` would be called. Since it's preferable to invoke pytest directly to run the system test suite, compile these binaries without installing them during `make all` instead by using noinst_PROGRAMS. This removes the need to use TESTS= make -e check hack invoked from pytest to work around this issue. --- bin/tests/system/Makefile.am | 2 +- bin/tests/system/conftest.py | 22 ------------------- .../system/dlzexternal/driver/Makefile.am | 2 +- bin/tests/system/dyndb/driver/Makefile.am | 2 +- bin/tests/system/hooks/driver/Makefile.am | 2 +- bin/tests/system/rpz/testlib/Makefile.am | 2 +- 6 files changed, 5 insertions(+), 27 deletions(-) diff --git a/bin/tests/system/Makefile.am b/bin/tests/system/Makefile.am index ab716ac0c7..44282372de 100644 --- a/bin/tests/system/Makefile.am +++ b/bin/tests/system/Makefile.am @@ -25,7 +25,7 @@ LDADD += \ if HAVE_PERL -check_PROGRAMS = \ +noinst_PROGRAMS = \ feature-test \ makejournal \ pipelined/pipequeries \ diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index fcdc379c47..0be546b810 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -189,28 +189,6 @@ else: # Ensure this hook only runs on the main pytest instance if xdist is # used to spawn other workers. if not XDIST_WORKER: - CONFTEST_LOGGER.debug("compiling required files") - env = os.environ.copy() - env["TESTS"] = "" # disable automake test framework - compile-only - try: - # FUTURE: Remove the need to run this compilation command - # before executing tests. Currently it's only here to have - # on-par functionality with the legacy test framework. - proc = subprocess.run( - "make -e check", - shell=True, - check=True, - cwd=FILE_DIR, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - env=env, - ) - except subprocess.CalledProcessError as exc: - CONFTEST_LOGGER.debug(exc.stdout) - CONFTEST_LOGGER.error("failed to compile test files: %s", exc) - raise exc - CONFTEST_LOGGER.debug(proc.stdout) - if config.pluginmanager.has_plugin("xdist") and config.option.numprocesses: # system tests depend on module scope for setup & teardown # enforce use "loadscope" scheduler or disable paralelism diff --git a/bin/tests/system/dlzexternal/driver/Makefile.am b/bin/tests/system/dlzexternal/driver/Makefile.am index a8211d1fb1..0028edb573 100644 --- a/bin/tests/system/dlzexternal/driver/Makefile.am +++ b/bin/tests/system/dlzexternal/driver/Makefile.am @@ -4,7 +4,7 @@ AM_CPPFLAGS += \ $(LIBISC_CFLAGS) \ $(LIBDNS_CFLAGS) -check_LTLIBRARIES = dlzexternal.la +noinst_LTLIBRARIES = dlzexternal.la dlzexternal_la_SOURCES = \ driver.c \ diff --git a/bin/tests/system/dyndb/driver/Makefile.am b/bin/tests/system/dyndb/driver/Makefile.am index e41a30a860..3e6b4a4890 100644 --- a/bin/tests/system/dyndb/driver/Makefile.am +++ b/bin/tests/system/dyndb/driver/Makefile.am @@ -4,7 +4,7 @@ AM_CPPFLAGS += \ $(LIBISC_CFLAGS) \ $(LIBDNS_CFLAGS) -check_LTLIBRARIES = sample.la +noinst_LTLIBRARIES = sample.la sample_la_SOURCES = \ db.c \ diff --git a/bin/tests/system/hooks/driver/Makefile.am b/bin/tests/system/hooks/driver/Makefile.am index ffa074a27c..b0c4b799c4 100644 --- a/bin/tests/system/hooks/driver/Makefile.am +++ b/bin/tests/system/hooks/driver/Makefile.am @@ -6,7 +6,7 @@ AM_CPPFLAGS += \ $(LIBNS_CFLAGS) \ $(LIBISCCFG_CFLAGS) -check_LTLIBRARIES = test-async.la +noinst_LTLIBRARIES = test-async.la test_async_la_SOURCES = test-async.c test_async_la_LDFLAGS = -avoid-version -module -shared -export-dynamic -rpath $(abs_builddir) diff --git a/bin/tests/system/rpz/testlib/Makefile.am b/bin/tests/system/rpz/testlib/Makefile.am index 6e32f9cf98..6271fdb3fa 100644 --- a/bin/tests/system/rpz/testlib/Makefile.am +++ b/bin/tests/system/rpz/testlib/Makefile.am @@ -6,7 +6,7 @@ AM_CPPFLAGS += \ AM_CFLAGS += -Wall -pedantic -check_LTLIBRARIES = libdummyrpz.la +noinst_LTLIBRARIES = libdummyrpz.la libdummyrpz_la_SOURCES= dummylib.c test-data.c trpz.h test-data.h libdummyrpz_la_LDFLAGS = -avoid-version -module -shared -export-dynamic -rpath $(abs_builddir) LDADD += -lpthread $(DLOPEN_LIBS)