Parcourir la 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 il y a 10 ans
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
-}