From: Marcin Siodelski Date: Tue, 21 Apr 2015 10:27:26 +0000 (+0200) Subject: [3823] Removed the limit for the number of log messages pointers. X-Git-Tag: trac3824_base~8^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=87ee8e5df53b3152bc5388ef8b55a936bbb1dfbb;p=thirdparty%2Fkea.git [3823] Removed the limit for the number of log messages pointers. The limit had been introduced when the message pointers were held in the array (having a fixed size). With recent changes the array has been replaced with the list. Since, the list is dynamically allocated there is no need for fixed size. --- diff --git a/src/lib/log/message_initializer.cc b/src/lib/log/message_initializer.cc index 7ea8383d69..adcb840bff 100644 --- a/src/lib/log/message_initializer.cc +++ b/src/lib/log/message_initializer.cc @@ -53,15 +53,11 @@ getNonConstDuplicates() { namespace isc { namespace log { -// Constructor. Add the pointer to the message array to the global array. -// This method will trigger an assertion failure if the array overflows. - MessageInitializer::MessageInitializer(const char* values[]) : values_(values), global_dictionary_(MessageDictionary::globalDictionary()), global_logger_values_(getNonConstLoggerValues()), global_logger_duplicates_(getNonConstDuplicates()) { - assert(global_logger_values_->size() < MAX_MESSAGE_ARRAYS); global_logger_values_->push_back(values); } diff --git a/src/lib/log/message_initializer.h b/src/lib/log/message_initializer.h index e4df35c93e..a26e3f107c 100644 --- a/src/lib/log/message_initializer.h +++ b/src/lib/log/message_initializer.h @@ -70,12 +70,6 @@ typedef boost::shared_ptr LoggerDuplicatesListPtr; /// called to populate the messages defined in various instances of the /// \c MessageInitializer class to the global dictionary. /// -/// \note The maximum number of message arrays that can be added to the -/// dictionary in this way is defined by the constant -/// MessageInitializer::MAX_MESSAGE_ARRAYS. This is set to 256 as a compromise -/// between wasted space and allowing for future expansion, but can be -/// changed (by editing the source file) to any value desired. -/// /// When messages are added to the dictionary, the are added via the /// MessageDictionary::add() method, so any duplicates are stored in the /// global dictionary's overflow lince whence they can be retrieved at @@ -83,8 +77,6 @@ typedef boost::shared_ptr LoggerDuplicatesListPtr; class MessageInitializer : public boost::noncopyable { public: - /// Maximum number of message arrays that can be initialized in this way - static const size_t MAX_MESSAGE_ARRAYS = 256; /// \brief Constructor /// diff --git a/src/lib/log/tests/Makefile.am b/src/lib/log/tests/Makefile.am index 860c146fd3..fb57d3788e 100644 --- a/src/lib/log/tests/Makefile.am +++ b/src/lib/log/tests/Makefile.am @@ -120,10 +120,6 @@ initializer_unittests_1_CXXFLAGS = $(AM_CXXFLAGS) initializer_unittests_1_LDADD = $(AM_LDADD) initializer_unittests_1_LDFLAGS = $(AM_LDFLAGS) -TESTS += initializer_unittests_2 -initializer_unittests_2_SOURCES = run_initializer_unittests.cc -initializer_unittests_2_SOURCES += message_initializer_2_unittest.cc - initializer_unittests_2_CPPFLAGS = $(AM_CPPFLAGS) initializer_unittests_2_CXXFLAGS = $(AM_CXXFLAGS) initializer_unittests_2_LDADD = $(AM_LDADD) diff --git a/src/lib/log/tests/message_initializer_2_unittest.cc b/src/lib/log/tests/message_initializer_2_unittest.cc deleted file mode 100644 index d88cef039f..0000000000 --- a/src/lib/log/tests/message_initializer_2_unittest.cc +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2012,2015 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 - -#include -#include - -#include -#include - -using namespace isc::log; - -// Declare a set of messages to go into the global dictionary. - -namespace { -const char* values[] = { - "GLOBAL1", "global message one", - "GLOBAL2", "global message two", - NULL -}; -} - -TEST(MessageInitializerTest2, MessageLoadTest) { - // Create the list where the initializers will be held. - std::list > initializers; - - // Load the maximum number of message arrays allowed. Some arrays may - // already have been loaded because of static initialization from modules - // in libraries linked against the test program, hence the reason for the - // loop starting from the value returned by getPendingCount() instead of 0 - for (size_t i = MessageInitializer::getPendingCount(); - i < MessageInitializer::MAX_MESSAGE_ARRAYS; ++i) { - boost::shared_ptr initializer(new MessageInitializer(values)); - initializers.push_back(initializer); - } - - // Note: Not all systems have EXPECT_DEATH. As it is a macro we can just - // test for its presence and bypass the test if not available. -#ifdef EXPECT_DEATH - // Adding one more should take us over the limit. - if (!isc::util::unittests::runningOnValgrind()) { - EXPECT_DEATH({ - isc::util::unittests::dontCreateCoreDumps(); - - MessageInitializer initializer(values); - }, ".*"); - } -#endif -}