]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2172] log Makefile.am: check-local -> TESTS
authorAndrei Pavel <andrei@isc.org>
Mon, 8 Nov 2021 14:02:43 +0000 (16:02 +0200)
committerAndrei Pavel <andrei@isc.org>
Fri, 19 Nov 2021 18:48:22 +0000 (20:48 +0200)
solves a race in which shell tests and C++ gtests could get interleaved
when running "make check" on multiple threads

src/lib/log/tests/.gitignore
src/lib/log/tests/Makefile.am

index 88a4a47f21807b9fb715b4166448426ce11a1c58..b32b9639dd18221a786aa6376952223f133a79b5 100644 (file)
@@ -5,7 +5,6 @@
 /init_logger_test
 /init_logger_test.sh
 /initializer_unittests_1
-/initializer_unittests_2
 /local_file_test.sh
 /logger_example
 /logger_lock_test
index 4d0c2dfb4a06068d66475390ff66441cf9fa3e6f..145d8093e53b03fde8e06f521ef8252a74d0255f 100644 (file)
@@ -1,80 +1,90 @@
 SUBDIRS = .
 
-AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
-AM_CPPFLAGS += $(BOOST_INCLUDES)
+# Define the flags used in each set of tests.
+AM_CPPFLAGS  = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(GTEST_INCLUDES) $(LOG4CPLUS_INCLUDES)
+
 AM_CXXFLAGS = $(KEA_CXXFLAGS)
-AM_LDADD    =
-AM_LDFLAGS  =
 
+AM_LDADD  =
+AM_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
+AM_LDADD += $(top_builddir)/src/lib/util/unittests/libutil_unittests.la
+AM_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+AM_LDADD += $(LOG4CPLUS_LIBS) $(GTEST_LDADD)
+
+AM_LDFLAGS  =
 if USE_STATIC_LINK
 AM_LDFLAGS += -static
 endif
 
 CLEANFILES = *.gcno *.gcda *.lock
-DISTCLEANFILES = buffer_logger_test.sh
-DISTCLEANFILES += console_test.sh destination_test.sh init_logger_test.sh
-DISTCLEANFILES += local_file_test.sh logger_lock_test.sh severity_test.sh
-DISTCLEANFILES += tempdir.h
+DISTCLEANFILES = tempdir.h
 
 EXTRA_DIST = log_test_messages.mes
 
-noinst_PROGRAMS = logger_example
+# Helper programs used in shell tests
+TEST_HELPERS = logger_example
 logger_example_SOURCES = logger_example.cc
 logger_example_CPPFLAGS = $(AM_CPPFLAGS)
+logger_example_CXXFLAGS = $(AM_CXXFLAGS)
+logger_example_LDADD = $(AM_LDADD)
 logger_example_LDFLAGS = $(AM_LDFLAGS)
-logger_example_LDADD  = $(top_builddir)/src/lib/log/libkea-log.la
-logger_example_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
-logger_example_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
-logger_example_LDADD += $(AM_LDADD) $(LOG4CPLUS_LIBS)
 
-noinst_PROGRAMS += init_logger_test
+TEST_HELPERS += init_logger_test
 init_logger_test_SOURCES = init_logger_test.cc
 init_logger_test_CPPFLAGS = $(AM_CPPFLAGS)
+init_logger_test_CXXFLAGS = $(AM_CXXFLAGS)
+init_logger_test_LDADD = $(AM_LDADD)
 init_logger_test_LDFLAGS = $(AM_LDFLAGS)
-init_logger_test_LDADD  = $(top_builddir)/src/lib/log/libkea-log.la
-init_logger_test_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
-init_logger_test_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
-init_logger_test_LDADD += $(AM_LDADD) $(LOG4CPLUS_LIBS)
 
-noinst_PROGRAMS += buffer_logger_test
+TEST_HELPERS += buffer_logger_test
 buffer_logger_test_SOURCES = buffer_logger_test.cc
 buffer_logger_test_CPPFLAGS = $(AM_CPPFLAGS)
+buffer_logger_test_CXXFLAGS = $(AM_CXXFLAGS)
+buffer_logger_test_LDADD = $(AM_LDADD)
 buffer_logger_test_LDFLAGS = $(AM_LDFLAGS)
-buffer_logger_test_LDADD  = $(top_builddir)/src/lib/log/libkea-log.la
-buffer_logger_test_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
-buffer_logger_test_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
-buffer_logger_test_LDADD += $(AM_LDADD) $(LOG4CPLUS_LIBS)
 
-noinst_PROGRAMS += logger_lock_test
-logger_lock_test_SOURCES = logger_lock_test.cc
+TEST_HELPERS += logger_lock_test
+logger_lock_test_SOURCES  = logger_lock_test.cc
 logger_lock_test_SOURCES += log_test_messages.cc log_test_messages.h
 logger_lock_test_CPPFLAGS = $(AM_CPPFLAGS)
+logger_lock_test_CXXFLAGS = $(AM_CXXFLAGS)
+logger_lock_test_LDADD = $(AM_LDADD)
 logger_lock_test_LDFLAGS = $(AM_LDFLAGS)
-logger_lock_test_LDADD  = $(top_builddir)/src/lib/log/libkea-log.la
-logger_lock_test_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
-logger_lock_test_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
-logger_lock_test_LDADD += $(AM_LDADD) $(LOG4CPLUS_LIBS)
 
-TESTS_ENVIRONMENT = \
-       $(LIBTOOL) --mode=execute $(VALGRIND_COMMAND)
+# Don't install helper binaries.
+noinst_PROGRAMS = $(TEST_HELPERS)
 
-if HAVE_GTEST
-TESTS =
+# Shell tests. These are principally tests where the global logging environment
+# is affected, and where the output needs to be compared with stored output
+# (where "cut" and "diff" are useful utilities).
+SHTESTS  =
+SHTESTS += buffer_logger_test.sh
+SHTESTS += console_test.sh
+SHTESTS += destination_test.sh
+SHTESTS += init_logger_test.sh
+SHTESTS += local_file_test.sh
+SHTESTS += logger_lock_test.sh
+SHTESTS += severity_test.sh
+
+# Run shell tests on "make check".
+check_SCRIPTS = $(SHTESTS)
+TESTS = $(SHTESTS)
 
-# Define the flags used in each set of tests
-TESTSCXXFLAGS  = $(AM_CXXFLAGS)
-TESTSCPPFLAGS  = $(AM_CPPFLAGS) $(GTEST_INCLUDES) $(LOG4CPLUS_INCLUDES)
-TESTSLDFLAGS  = $(AM_LDFLAGS) $(GTEST_LDFLAGS)
+# As with every file generated by ./configure, clean them up when running
+# "make distclean", but not on "make clean".
+DISTCLEANFILES += $(SHTESTS)
 
-TESTSLDADD  = $(AM_LDADD)
-TESTSLDADD += $(top_builddir)/src/lib/log/libkea-log.la
-TESTSLDADD += $(top_builddir)/src/lib/util/unittests/libutil_unittests.la
-TESTSLDADD += $(top_builddir)/src/lib/util/libkea-util.la
-TESTSLDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
-TESTSLDADD += $(LOG4CPLUS_LIBS) $(GTEST_LDADD)
+# Don't install shell tests.
+noinst_SCRIPTS = $(SHTESTS)
+
+if HAVE_GTEST
+
+TESTS_ENVIRONMENT = \
+       $(LIBTOOL) --mode=execute $(VALGRIND_COMMAND)
 
 # Set of unit tests for the general logging classes
-TESTS += run_unittests
+PROGRAM_TESTS = run_unittests
 run_unittests_SOURCES  = run_unittests.cc
 run_unittests_SOURCES += log_formatter_unittest.cc
 run_unittests_SOURCES += logger_level_impl_unittest.cc
@@ -89,51 +99,31 @@ run_unittests_SOURCES += message_reader_unittest.cc
 run_unittests_SOURCES += output_option_unittest.cc
 run_unittests_SOURCES += buffer_appender_unittest.cc
 run_unittests_SOURCES += log_test_messages.cc log_test_messages.h
+run_unittests_CPPFLAGS = $(AM_CPPFLAGS)
+run_unittests_CXXFLAGS = $(AM_CXXFLAGS)
+run_unittests_LDADD = $(AM_LDADD)
+run_unittests_LDFLAGS = $(AM_LDFLAGS)
 
-run_unittests_CPPFLAGS = $(TESTSCPPFLAGS)
-run_unittests_CXXFLAGS = $(TESTSCXXFLAGS)
-run_unittests_LDADD    = $(TESTSLDADD)
-run_unittests_LDFLAGS  = $(TESTSLDFLAGS)
-
-# logging initialization tests.  These are put in separate programs to
+# logging initialization tests.  These are put in a separate program to
 # ensure that the initialization status at the start of each test is known,
 # and to prevent circumstances where the execution of one test affects the
 # starting conditions of the next.
-TESTS += initializer_unittests_1
+PROGRAM_TESTS += initializer_unittests_1
 initializer_unittests_1_SOURCES  = run_initializer_unittests.cc
 initializer_unittests_1_SOURCES += message_initializer_1_unittest.cc
 initializer_unittests_1_SOURCES += message_initializer_1a_unittest.cc
+initializer_unittests_1_CPPFLAGS = $(AM_CPPFLAGS)
+initializer_unittests_1_CXXFLAGS = $(AM_CXXFLAGS)
+initializer_unittests_1_LDADD = $(AM_LDADD)
+initializer_unittests_1_LDFLAGS = $(AM_LDFLAGS)
 
-initializer_unittests_1_CPPFLAGS = $(TESTSCPPFLAGS)
-initializer_unittests_1_CXXFLAGS = $(TESTSCXXFLAGS)
-initializer_unittests_1_LDADD    = $(TESTSLDADD)
-initializer_unittests_1_LDFLAGS  = $(TESTSLDFLAGS)
+# Run C++ tests on "make check".
+TESTS += $(PROGRAM_TESTS)
 
-noinst_PROGRAMS += $(TESTS)
+# Don't install test binaries.
+noinst_PROGRAMS += $(PROGRAM_TESTS)
 endif
 
-noinst_SCRIPTS  =
-noinst_SCRIPTS += buffer_logger_test.sh
-noinst_SCRIPTS += console_test.sh
-noinst_SCRIPTS += destination_test.sh
-noinst_SCRIPTS += init_logger_test.sh
-noinst_SCRIPTS += local_file_test.sh
-noinst_SCRIPTS += logger_lock_test.sh
-noinst_SCRIPTS += severity_test.sh
-
-# Additional test using the shell.  These are principally tests
-# where the global logging environment is affected, and where the
-# output needs to be compared with stored output (where "cut" and
-# "diff" are useful utilities).
-check-local:
-       $(SHELL) $(abs_builddir)/buffer_logger_test.sh
-       $(SHELL) $(abs_builddir)/console_test.sh
-       $(SHELL) $(abs_builddir)/destination_test.sh
-       $(SHELL) $(abs_builddir)/init_logger_test.sh
-       $(SHELL) $(abs_builddir)/local_file_test.sh
-       $(SHELL) $(abs_builddir)/logger_lock_test.sh
-       $(SHELL) $(abs_builddir)/severity_test.sh
-
 # If we want to get rid of all generated messages files, we need to use
 # make maintainer-clean. The proper way to introduce custom commands for
 # that operation is to define maintainer-clean-local target. However,