Browse Source

[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.
Marcin Siodelski 10 years ago
parent
commit
87ee8e5df5

+ 0 - 4
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);
 }
 

+ 0 - 8
src/lib/log/message_initializer.h

@@ -70,12 +70,6 @@ typedef boost::shared_ptr<LoggerDuplicatesList> 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<LoggerDuplicatesList> 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
     ///

+ 0 - 4
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)

+ 0 - 61
src/lib/log/tests/message_initializer_2_unittest.cc

@@ -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 <config.h>
-
-#include <log/message_initializer.h>
-#include <gtest/gtest.h>
-
-#include <util/unittests/resource.h>
-#include <util/unittests/check_valgrind.h>
-
-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<boost::shared_ptr<MessageInitializer> > 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<MessageInitializer> 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
-}