From: Andrei Pavel Date: Mon, 8 Nov 2021 14:02:43 +0000 (+0200) Subject: [#2172] log Makefile.am: check-local -> TESTS X-Git-Tag: Kea-2.1.1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ccf349eef517a79cec6e58e21feab7f830403426;p=thirdparty%2Fkea.git [#2172] log Makefile.am: check-local -> TESTS solves a race in which shell tests and C++ gtests could get interleaved when running "make check" on multiple threads --- diff --git a/src/lib/log/tests/.gitignore b/src/lib/log/tests/.gitignore index 88a4a47f21..b32b9639dd 100644 --- a/src/lib/log/tests/.gitignore +++ b/src/lib/log/tests/.gitignore @@ -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 diff --git a/src/lib/log/tests/Makefile.am b/src/lib/log/tests/Makefile.am index 4d0c2dfb4a..145d8093e5 100644 --- a/src/lib/log/tests/Makefile.am +++ b/src/lib/log/tests/Makefile.am @@ -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,