mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 07:25:18 +00:00
[1880] Use a helper function instead of repeating code
This commit is contained in:
@@ -67,6 +67,7 @@ run_unittests_CPPFLAGS = $(AM_CPPFLAGS)
|
|||||||
run_unittests_CXXFLAGS = $(AM_CXXFLAGS)
|
run_unittests_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
run_unittests_LDADD = $(AM_LDADD)
|
run_unittests_LDADD = $(AM_LDADD)
|
||||||
run_unittests_LDFLAGS = $(AM_LDFLAGS)
|
run_unittests_LDFLAGS = $(AM_LDFLAGS)
|
||||||
|
run_unittests_LDFLAGS += $(top_builddir)/src/lib/testutils/libtestutils.la
|
||||||
|
|
||||||
# logging initialization tests. These are put in separate programs to
|
# logging initialization tests. These are put in separate programs to
|
||||||
# ensure that the initialization status at the start of each test is known,
|
# ensure that the initialization status at the start of each test is known,
|
||||||
@@ -90,6 +91,7 @@ initializer_unittests_2_CPPFLAGS = $(AM_CPPFLAGS)
|
|||||||
initializer_unittests_2_CXXFLAGS = $(AM_CXXFLAGS)
|
initializer_unittests_2_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
initializer_unittests_2_LDADD = $(AM_LDADD)
|
initializer_unittests_2_LDADD = $(AM_LDADD)
|
||||||
initializer_unittests_2_LDFLAGS = $(AM_LDFLAGS)
|
initializer_unittests_2_LDFLAGS = $(AM_LDFLAGS)
|
||||||
|
initializer_unittests_2_LDFLAGS += $(top_builddir)/src/lib/testutils/libtestutils.la
|
||||||
|
|
||||||
noinst_PROGRAMS += $(TESTS)
|
noinst_PROGRAMS += $(TESTS)
|
||||||
endif
|
endif
|
||||||
|
@@ -14,11 +14,11 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include <testutils/resource.h>
|
||||||
|
|
||||||
#include <log/logger.h>
|
#include <log/logger.h>
|
||||||
#include <log/logger_manager.h>
|
#include <log/logger_manager.h>
|
||||||
#include <log/logger_name.h>
|
#include <log/logger_name.h>
|
||||||
@@ -372,14 +372,7 @@ TEST_F(LoggerTest, LoggerNameLength) {
|
|||||||
// Note that we just check that it dies - we don't check what message is
|
// Note that we just check that it dies - we don't check what message is
|
||||||
// output.
|
// output.
|
||||||
EXPECT_DEATH({
|
EXPECT_DEATH({
|
||||||
/* Set rlimits so that no coredumps are created. As a new
|
isc::testutils::dontCreateCoreDumps();
|
||||||
process is forked to run this EXPECT_DEATH test, the rlimits
|
|
||||||
of the parent process that runs the other tests should be
|
|
||||||
unaffected. */
|
|
||||||
rlimit core_limit;
|
|
||||||
core_limit.rlim_cur = 0;
|
|
||||||
core_limit.rlim_max = 0;
|
|
||||||
EXPECT_EQ(setrlimit(RLIMIT_CORE, &core_limit), 0);
|
|
||||||
|
|
||||||
string ok3(Logger::MAX_LOGGER_NAME_SIZE + 1, 'x');
|
string ok3(Logger::MAX_LOGGER_NAME_SIZE + 1, 'x');
|
||||||
Logger l3(ok3.c_str());
|
Logger l3(ok3.c_str());
|
||||||
|
@@ -12,10 +12,9 @@
|
|||||||
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
// PERFORMANCE OF THIS SOFTWARE.
|
// PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
#include <log/message_initializer.h>
|
#include <log/message_initializer.h>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
#include <testutils/resource.h>
|
||||||
|
|
||||||
using namespace isc::log;
|
using namespace isc::log;
|
||||||
|
|
||||||
@@ -44,14 +43,7 @@ TEST(MessageInitializerTest2, MessageLoadTest) {
|
|||||||
#ifdef EXPECT_DEATH
|
#ifdef EXPECT_DEATH
|
||||||
// Adding one more should take us over the limit.
|
// Adding one more should take us over the limit.
|
||||||
EXPECT_DEATH({
|
EXPECT_DEATH({
|
||||||
/* Set rlimits so that no coredumps are created. As a new
|
isc::testutils::dontCreateCoreDumps();
|
||||||
process is forked to run this EXPECT_DEATH test, the rlimits
|
|
||||||
of the parent process that runs the other tests should be
|
|
||||||
unaffected. */
|
|
||||||
rlimit core_limit;
|
|
||||||
core_limit.rlim_cur = 0;
|
|
||||||
core_limit.rlim_max = 0;
|
|
||||||
EXPECT_EQ(setrlimit(RLIMIT_CORE, &core_limit), 0);
|
|
||||||
|
|
||||||
MessageInitializer initializer2(values);
|
MessageInitializer initializer2(values);
|
||||||
}, ".*");
|
}, ".*");
|
||||||
|
@@ -48,6 +48,7 @@ run_unittests_LDADD += $(top_builddir)/src/lib/util/unittests/libutil_unittests.
|
|||||||
run_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
|
run_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
|
||||||
run_unittests_LDADD += $(top_builddir)/src/lib/config/libcfgclient.la
|
run_unittests_LDADD += $(top_builddir)/src/lib/config/libcfgclient.la
|
||||||
run_unittests_LDADD += $(top_builddir)/src/lib/config/tests/libfake_session.la
|
run_unittests_LDADD += $(top_builddir)/src/lib/config/tests/libfake_session.la
|
||||||
|
run_unittests_LDADD += $(top_builddir)/src/lib/testutils/libtestutils.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
noinst_PROGRAMS = $(TESTS)
|
noinst_PROGRAMS = $(TESTS)
|
||||||
|
@@ -12,12 +12,10 @@
|
|||||||
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
// PERFORMANCE OF THIS SOFTWARE.
|
// PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#include <server_common/portconfig.h>
|
#include <server_common/portconfig.h>
|
||||||
#include <testutils/socket_request.h>
|
#include <testutils/socket_request.h>
|
||||||
#include <testutils/mockups.h>
|
#include <testutils/mockups.h>
|
||||||
|
#include <testutils/resource.h>
|
||||||
|
|
||||||
#include <cc/data.h>
|
#include <cc/data.h>
|
||||||
#include <exceptions/exceptions.h>
|
#include <exceptions/exceptions.h>
|
||||||
@@ -316,14 +314,7 @@ TEST_F(InstallListenAddressesDeathTest, inconsistent) {
|
|||||||
// Make sure it actually kills the application (there should be an abort
|
// Make sure it actually kills the application (there should be an abort
|
||||||
// in this case)
|
// in this case)
|
||||||
EXPECT_DEATH({
|
EXPECT_DEATH({
|
||||||
/* Set rlimits so that no coredumps are created. As a new
|
isc::testutils::dontCreateCoreDumps();
|
||||||
process is forked to run this EXPECT_DEATH test, the rlimits
|
|
||||||
of the parent process that runs the other tests should be
|
|
||||||
unaffected. */
|
|
||||||
rlimit core_limit;
|
|
||||||
core_limit.rlim_cur = 0;
|
|
||||||
core_limit.rlim_max = 0;
|
|
||||||
EXPECT_EQ(setrlimit(RLIMIT_CORE, &core_limit), 0);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
installListenAddresses(deathAddresses, store_, dnss_);
|
installListenAddresses(deathAddresses, store_, dnss_);
|
||||||
@@ -342,14 +333,7 @@ TEST_F(InstallListenAddressesDeathTest, cantClose) {
|
|||||||
// Instruct it to fail on close
|
// Instruct it to fail on close
|
||||||
sock_requestor_.break_release_ = true;
|
sock_requestor_.break_release_ = true;
|
||||||
EXPECT_DEATH({
|
EXPECT_DEATH({
|
||||||
/* Set rlimits so that no coredumps are created. As a new
|
isc::testutils::dontCreateCoreDumps();
|
||||||
process is forked to run this EXPECT_DEATH test, the rlimits
|
|
||||||
of the parent process that runs the other tests should be
|
|
||||||
unaffected. */
|
|
||||||
rlimit core_limit;
|
|
||||||
core_limit.rlim_cur = 0;
|
|
||||||
core_limit.rlim_max = 0;
|
|
||||||
EXPECT_EQ(setrlimit(RLIMIT_CORE, &core_limit), 0);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Setting to empty will close all current sockets.
|
// Setting to empty will close all current sockets.
|
||||||
|
@@ -9,6 +9,7 @@ noinst_LTLIBRARIES = libtestutils.la
|
|||||||
|
|
||||||
libtestutils_la_SOURCES = srv_test.h srv_test.cc
|
libtestutils_la_SOURCES = srv_test.h srv_test.cc
|
||||||
libtestutils_la_SOURCES += dnsmessage_test.h dnsmessage_test.cc
|
libtestutils_la_SOURCES += dnsmessage_test.h dnsmessage_test.cc
|
||||||
|
libtestutils_la_SOURCES += resource.cc resource.h
|
||||||
libtestutils_la_SOURCES += mockups.h
|
libtestutils_la_SOURCES += mockups.h
|
||||||
libtestutils_la_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
|
libtestutils_la_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
|
||||||
libtestutils_la_LIBADD = $(top_builddir)/src/lib/asiolink/libasiolink.la
|
libtestutils_la_LIBADD = $(top_builddir)/src/lib/asiolink/libasiolink.la
|
||||||
|
36
src/lib/testutils/resource.cc
Normal file
36
src/lib/testutils/resource.cc
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
|
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||||
|
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
// PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/resource.h>
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
namespace isc {
|
||||||
|
namespace testutils {
|
||||||
|
|
||||||
|
void
|
||||||
|
dontCreateCoreDumps(void)
|
||||||
|
{
|
||||||
|
/* Set rlimits so that no coredumps are created. As a new
|
||||||
|
process is forked to run this EXPECT_DEATH test, the rlimits
|
||||||
|
of the parent process that runs the other tests should be
|
||||||
|
unaffected. */
|
||||||
|
rlimit core_limit = {0, 0};
|
||||||
|
|
||||||
|
EXPECT_EQ(setrlimit(RLIMIT_CORE, &core_limit), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end of namespace testutils
|
||||||
|
} // end of namespace isc
|
35
src/lib/testutils/resource.h
Normal file
35
src/lib/testutils/resource.h
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
|
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||||
|
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
// PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
#ifndef __ISC_TESTUTILS_RESOURCE_H
|
||||||
|
#define __ISC_TESTUTILS_RESOURCE_H
|
||||||
|
|
||||||
|
namespace isc {
|
||||||
|
namespace testutils {
|
||||||
|
|
||||||
|
/// Don't create core dumps.
|
||||||
|
///
|
||||||
|
/// This function sets the core size to 0, inhibiting the creation of
|
||||||
|
/// core dumps. It is meant to be used in testcases where EXPECT_DEATH
|
||||||
|
/// is used, where processes abort (and create cores in the process).
|
||||||
|
/// As a new process is forked to run EXPECT_DEATH tests, the rlimits of
|
||||||
|
/// the parent process that runs the other tests should be unaffected.
|
||||||
|
|
||||||
|
void
|
||||||
|
dontCreateCoreDumps(void);
|
||||||
|
|
||||||
|
} // end of namespace testutils
|
||||||
|
} // end of namespace isc
|
||||||
|
|
||||||
|
#endif /* __ISC_TESTUTILS_RESOURCE_H */
|
@@ -44,6 +44,7 @@ run_unittests_LDADD += $(top_builddir)/src/lib/util/io/libutil_io.la
|
|||||||
run_unittests_LDADD += \
|
run_unittests_LDADD += \
|
||||||
$(top_builddir)/src/lib/util/unittests/libutil_unittests.la
|
$(top_builddir)/src/lib/util/unittests/libutil_unittests.la
|
||||||
run_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
|
run_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libexceptions.la
|
||||||
|
run_unittests_LDADD += $(top_builddir)/src/lib/testutils/libtestutils.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
noinst_PROGRAMS = $(TESTS)
|
noinst_PROGRAMS = $(TESTS)
|
||||||
|
@@ -12,10 +12,8 @@
|
|||||||
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
// PERFORMANCE OF THIS SOFTWARE.
|
// PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/resource.h>
|
|
||||||
|
|
||||||
#include <exceptions/exceptions.h>
|
#include <exceptions/exceptions.h>
|
||||||
|
#include <testutils/resource.h>
|
||||||
|
|
||||||
#include <util/buffer.h>
|
#include <util/buffer.h>
|
||||||
|
|
||||||
@@ -188,14 +186,7 @@ TEST_F(BufferTest, outputBufferReadat) {
|
|||||||
#ifdef EXPECT_DEATH
|
#ifdef EXPECT_DEATH
|
||||||
// We use assert now, so we check it dies
|
// We use assert now, so we check it dies
|
||||||
EXPECT_DEATH({
|
EXPECT_DEATH({
|
||||||
/* Set rlimits so that no coredumps are created. As a new
|
isc::testutils::dontCreateCoreDumps();
|
||||||
process is forked to run this EXPECT_DEATH test, the rlimits
|
|
||||||
of the parent process that runs the other tests should be
|
|
||||||
unaffected. */
|
|
||||||
rlimit core_limit;
|
|
||||||
core_limit.rlim_cur = 0;
|
|
||||||
core_limit.rlim_max = 0;
|
|
||||||
EXPECT_EQ(setrlimit(RLIMIT_CORE, &core_limit), 0);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
obuffer[sizeof(testdata)];
|
obuffer[sizeof(testdata)];
|
||||||
|
Reference in New Issue
Block a user