// 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 #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) { // 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) { MessageInitializer initializer1(values); } // 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. EXPECT_DEATH({ isc::util::unittests::dontCreateCoreDumps(); MessageInitializer initializer2(values); }, ".*"); #endif }