Author: carnold Date: Fri Jan 20 16:09:07 2006 New Revision: 370933 URL: http://svn.apache.org/viewcvs?rev=370933&view=rev Log: LOGCXX-118: Hierarchy corrupted when parent's requested last
Added: logging/log4cxx/trunk/tests/src/hierarchytest.cpp (with props) Modified: logging/log4cxx/trunk/build.xml logging/log4cxx/trunk/src/hierarchy.cpp Modified: logging/log4cxx/trunk/build.xml URL: http://svn.apache.org/viewcvs/logging/log4cxx/trunk/build.xml?rev=370933&r1=370932&r2=370933&view=diff ============================================================================== --- logging/log4cxx/trunk/build.xml (original) +++ logging/log4cxx/trunk/build.xml Fri Jan 20 16:09:07 2006 @@ -392,17 +392,17 @@ <echo message="Configuring with logchar_type=${logchar_type}" /> <condition property="logchar_is_utf8" value="1"> - <equals arg1="${logchar_type}" arg2="utf-8"/> + <equals arg1="${logchar_type}" arg2="utf-8"/> </condition> <property name="logchar_is_utf8" value="0"/> <condition property="logchar_is_cfstring" value="1"> - <equals arg1="${logchar_type}" arg2="cfstring"/> + <equals arg1="${logchar_type}" arg2="cfstring"/> </condition> <property name="logchar_is_cfstring" value="0"/> <condition property="logchar_is_wchar" value="1"> - <equals arg1="${logchar_type}" arg2="wchar_t"/> + <equals arg1="${logchar_type}" arg2="wchar_t"/> </condition> <property name="logchar_is_wchar" value="0"/> Modified: logging/log4cxx/trunk/src/hierarchy.cpp URL: http://svn.apache.org/viewcvs/logging/log4cxx/trunk/src/hierarchy.cpp?rev=370933&r1=370932&r2=370933&view=diff ============================================================================== --- logging/log4cxx/trunk/src/hierarchy.cpp (original) +++ logging/log4cxx/trunk/src/hierarchy.cpp Fri Jan 20 16:09:07 2006 @@ -297,7 +297,7 @@ LogString substr = name.substr(0, i); //tcout << _T("UpdateParents processing ") << substr << std::endl; - LoggerMap::iterator it = loggers.find(substr); + LoggerMap::iterator it = loggers.find(substr); if(it != loggers.end()) { parentFound = true; @@ -306,7 +306,7 @@ } else { - ProvisionNodeMap::iterator it2 = provisionNodes.find(name); + ProvisionNodeMap::iterator it2 = provisionNodes.find(substr); if (it2 != provisionNodes.end()) { it2->second.push_back(logger); Added: logging/log4cxx/trunk/tests/src/hierarchytest.cpp URL: http://svn.apache.org/viewcvs/logging/log4cxx/trunk/tests/src/hierarchytest.cpp?rev=370933&view=auto ============================================================================== --- logging/log4cxx/trunk/tests/src/hierarchytest.cpp (added) +++ logging/log4cxx/trunk/tests/src/hierarchytest.cpp Fri Jan 20 16:09:07 2006 @@ -0,0 +1,58 @@ +/* + * Copyright 2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include <cppunit/TestFixture.h> +#include <cppunit/extensions/HelperMacros.h> + +#include <log4cxx/logger.h> +#include <log4cxx/hierarchy.h> +#include "insertwide.h" + +using namespace log4cxx; + +/** + * Tests hierarchy. + * @author Curt Arnold + */ +class HierarchyTest : public CppUnit::TestFixture { + CPPUNIT_TEST_SUITE(HierarchyTest); + CPPUNIT_TEST(testGetParent); + CPPUNIT_TEST_SUITE_END(); +public: + + /** + * Tests getParent. + */ + void testGetParent() { + // + // Note: test inspired by LOGCXX-118. + // + LoggerPtr logger1(Logger::getLogger("HierarchyTest_testGetParent.logger1")); + CPPUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("root")), logger1->getParent()->getName()); + LoggerPtr logger2(Logger::getLogger("HierarchyTest_testGetParent.logger2")); + CPPUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("root")), logger1->getParent()->getName()); + LoggerPtr logger3(Logger::getLogger("HierarchyTest_testGetParent")); + CPPUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("HierarchyTest_testGetParent")), + logger1->getParent()->getName()); + CPPUNIT_ASSERT_EQUAL(LogString(LOG4CXX_STR("HierarchyTest_testGetParent")), + logger2->getParent()->getName()); + } + +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(HierarchyTest); + Propchange: logging/log4cxx/trunk/tests/src/hierarchytest.cpp ------------------------------------------------------------------------------ svn:executable = *