summaryrefslogtreecommitdiff
path: root/src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp')
-rw-r--r--src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp135
1 files changed, 135 insertions, 0 deletions
diff --git a/src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp b/src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp
new file mode 100644
index 0000000..7e18e87
--- /dev/null
+++ b/src/test/cpp/rolling/obsoletedailyrollingfileappendertest.cpp
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 "../util/compare.h"
+#include "../insertwide.h"
+#include "../logunit.h"
+#include <apr_time.h>
+#include <log4cxx/logmanager.h>
+#include <log4cxx/xml/domconfigurator.h>
+#include <log4cxx/patternlayout.h>
+#include <log4cxx/rolling/rollingfileappender.h>
+#include <log4cxx/rolling/fixedwindowrollingpolicy.h>
+#include <log4cxx/rolling/filterbasedtriggeringpolicy.h>
+#include <log4cxx/filter/levelrangefilter.h>
+#include <log4cxx/helpers/pool.h>
+#include <log4cxx/logger.h>
+#include <log4cxx/propertyconfigurator.h>
+#include <log4cxx/dailyrollingfileappender.h>
+#include <log4cxx/helpers/stringhelper.h>
+
+
+using namespace log4cxx;
+using namespace log4cxx::rolling;
+using namespace log4cxx::xml;
+using namespace log4cxx::filter;
+using namespace log4cxx::helpers;
+
+
+/**
+ * Tests the emulation of org.apache.log4j.DailyRollingFileAppender
+ *
+ *
+ *
+ */
+LOGUNIT_CLASS(ObsoleteDailyRollingFileAppenderTest) {
+ LOGUNIT_TEST_SUITE(ObsoleteDailyRollingFileAppenderTest);
+ LOGUNIT_TEST(test1);
+ LOGUNIT_TEST(test2);
+ LOGUNIT_TEST_SUITE_END();
+
+
+public:
+
+ void tearDown() {
+ LogManager::shutdown();
+ }
+
+ /**
+ * Test basic rolling functionality.
+ */
+ void test1() {
+ PropertyConfigurator::configure(File("input/rolling/obsoleteDRFA1.properties"));
+
+ int preCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test1.log."));
+ LoggerPtr logger(Logger::getLogger("org.apache.log4j.ObsoleteDailyRollingFileAppenderTest"));
+
+ char msg[11];
+ strcpy(msg, "Hello---??");
+
+ for (int i = 0; i < 25; i++) {
+ apr_sleep(100000);
+ msg[8] = (char) ('0' + (i / 10));
+ msg[9] = (char) ('0' + (i % 10));
+ LOG4CXX_DEBUG(logger, msg);
+ }
+
+ int postCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test1.log."));
+ LOGUNIT_ASSERT_EQUAL(true, postCount > preCount);
+ }
+
+ /**
+ * Test basic rolling functionality.
+ * @deprecated Class under test is deprecated.
+ */
+ void test2() {
+ PatternLayoutPtr layout(new PatternLayout(LOG4CXX_STR("%m%n")));
+ log4cxx::DailyRollingFileAppenderPtr rfa(new log4cxx::DailyRollingFileAppender());
+ rfa->setName(LOG4CXX_STR("ROLLING"));
+ rfa->setLayout(layout);
+ rfa->setAppend(false);
+ rfa->setFile(LOG4CXX_STR("output/obsoleteDRFA-test2.log"));
+ rfa->setDatePattern(LOG4CXX_STR("'.'yyyy-MM-dd-HH_mm_ss"));
+ Pool p;
+ rfa->activateOptions(p);
+ LoggerPtr root(Logger::getRootLogger());
+ root->addAppender(rfa);
+ LoggerPtr logger(Logger::getLogger("org.apache.log4j.ObsoleteDailyRollingAppenderTest"));
+
+ int preCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test2.log."));
+
+ char msg[11];
+ strcpy(msg, "Hello---??");
+ for (int i = 0; i < 25; i++) {
+ apr_sleep(100000);
+ msg[8] = (char) ('0' + i / 10);
+ msg[9] = (char) ('0' + i % 10);
+ LOG4CXX_DEBUG(logger, msg);
+ }
+
+ int postCount = getFileCount("output", LOG4CXX_STR("obsoleteDRFA-test2.log."));
+ LOGUNIT_ASSERT_EQUAL(true, postCount > preCount);
+ }
+
+private:
+ static int getFileCount(const char* dir, const LogString& initial) {
+ Pool p;
+ std::vector<LogString> files(File(dir).list(p));
+ int count = 0;
+
+ for (size_t i = 0; i < files.size(); i++) {
+ if (StringHelper::startsWith(files[i], initial)) {
+ count++;
+ }
+ }
+
+ return count;
+ }
+};
+
+LOGUNIT_TEST_SUITE_REGISTRATION(ObsoleteDailyRollingFileAppenderTest);
+