You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2002/02/18 22:43:32 UTC
cvs commit: jakarta-log4j/tests/src/java/org/apache/log4j/xml DOMTestCase.java
ceki 02/02/18 13:43:32
Modified: src/java/org/apache/log4j DailyRollingFileAppender.java
src/java/org/apache/log4j/spi LoggingEvent.java
src/java/org/apache/log4j/test runAll
src/java/org/apache/log4j/test/xml domTest11.xml
domTest12.xml
tests build.xml
tests/src/java/org/apache/log4j/xml DOMTestCase.java
Added: tests/resources L7D_en_US.properties L7D_fr.properties
L7D_fr_CH.properties
tests/src/java/org/apache/log4j DRFATestCase.java
LoggerTestCase.java
tests/src/java/org/apache/log4j/helpers
CyclicBufferTestCase.java
tests/src/java/org/apache/log4j/or ORTestCase.java
tests/src/java/org/apache/log4j/util AbsoluteTDFFilter.java
Removed: src/java/org/apache/log4j/test Min.java
UnitTestCyclicBuffer.java UnitTestDRFA.java
UnitTestLogger.java UnitTestOR.java minreg unitTest
src/java/org/apache/log4j/test/witness simple.minreg
ttcc.minreg
Log:
More of the same, that is more test cases. Also moving UnitTests from
src/java/org/apache/log4j/test/ to tests/src/java/org/apache/log4j/**.
Revision Changes Path
1.18 +13 -6 jakarta-log4j/src/java/org/apache/log4j/DailyRollingFileAppender.java
Index: DailyRollingFileAppender.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/DailyRollingFileAppender.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- DailyRollingFileAppender.java 14 Aug 2001 21:00:34 -0000 1.17
+++ DailyRollingFileAppender.java 18 Feb 2002 21:43:31 -0000 1.18
@@ -250,17 +250,24 @@
}
+ // This method computes the roll over period by looping over the
+ // periods, starting with the shortest, and stopping when the r0 is
+ // different from from r1, where r0 is the epoch formatted according
+ // the datePattern and r1 is the epoch+nextMillis(i) formatted
+ // according to the datePattern.
+
int computeCheckPeriod() {
- RollingCalendar c = new RollingCalendar();
+ RollingCalendar rollingCalendar = new RollingCalendar();
// set sate to 1970-01-01 00:00:00 GMT
Date epoch = new Date(0);
if(datePattern != null) {
for(int i = TOP_OF_MINUTE; i <= TOP_OF_MONTH; i++) {
- String r0 = sdf.format(epoch);
- c.setType(i);
- Date next = new Date(c.getNextCheckMillis(epoch));
- String r1 = sdf.format(next);
- //LogLog.debug("Type = "+i+", r0 = "+r0+", r1 = "+r1);
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datePattern);
+ String r0 = simpleDateFormat.format(epoch);
+ rollingCalendar.setType(i);
+ Date next = new Date(rollingCalendar.getNextCheckMillis(epoch));
+ String r1 = simpleDateFormat.format(next);
+ //System.out.println("Type = "+i+", r0 = "+r0+", r1 = "+r1);
if(r0 != null && r1 != null && !r0.equals(r1)) {
return i;
}
1.25 +27 -1 jakarta-log4j/src/java/org/apache/log4j/spi/LoggingEvent.java
Index: LoggingEvent.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/spi/LoggingEvent.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- LoggingEvent.java 21 Jan 2002 23:07:12 -0000 1.24
+++ LoggingEvent.java 18 Feb 2002 21:43:31 -0000 1.25
@@ -128,9 +128,35 @@
if(throwable != null) {
this.throwableInfo = new ThrowableInformation(throwable);
}
-
timeStamp = System.currentTimeMillis();
}
+
+ /**
+ Instantiate a LoggingEvent from the supplied parameters.
+
+ <p>Except {@link #timeStamp} all the other fields of
+ <code>LoggingEvent</code> are filled when actually needed.
+ <p>
+ @param category The category of this event.
+ @param timeStamp the timestamp of this logging event
+ @param level The level of this event.
+ @param message The message of this event.
+ @param throwable The throwable of this event. */
+ public LoggingEvent(String fqnOfCategoryClass, Category logger,
+ long timeStamp, Priority priority, Object message,
+ Throwable throwable) {
+ this.fqnOfCategoryClass = fqnOfCategoryClass;
+ this.logger = logger;
+ this.categoryName = logger.getName();
+ this.level = priority;
+ this.message = message;
+ if(throwable != null) {
+ this.throwableInfo = new ThrowableInformation(throwable);
+ }
+
+ this.timeStamp = timeStamp;
+ }
+
/**
1.13 +1 -5 jakarta-log4j/src/java/org/apache/log4j/test/runAll
Index: runAll
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/test/runAll,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- runAll 4 Oct 2001 21:07:04 -0000 1.12
+++ runAll 18 Feb 2002 21:43:31 -0000 1.13
@@ -5,8 +5,6 @@
deleteFile log4j.properties
-./minreg simple || die "minreg simple FAILED.";
-./minreg ttcc || die "minreg ttcc FAILED.";
./shallow || die "shallow test FAILED."
./defaultInit || die "defaultInit test FAILED."
./propConfig || die "propConfig test FAILED."
@@ -20,6 +18,4 @@
./mycat || die "mycat test FAILED."
./l7d || die "L7D test FAILED."
./fqcn || die "FQCN test FAILED."
-./extSupport || die "Extension support test FAILED."
-
-./unitTest || die "unit test FAILED."
+#./extSupport || die "Extension support test FAILED."
1.2 +21 -19 jakarta-log4j/src/java/org/apache/log4j/test/xml/domTest11.xml
Index: domTest11.xml
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/test/xml/domTest11.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- domTest11.xml 4 Oct 2001 20:57:57 -0000 1.1
+++ domTest11.xml 18 Feb 2002 21:43:31 -0000 1.2
@@ -4,23 +4,25 @@
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'
configDebug="true">
- <appender name="TEMP" class="org.apache.log4j.FileAppender">
- <param name="Append" value="false" />
- <param name="File" value="temp" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="%-5p %c{2} - %m\n"/>
- </layout>
-
- <filter class="org.apache.log4j.varia.PriorityMatchFilter">
- <param name="PriorityToMatch" value="WARN" />
- <param name="AcceptOnMatch" value="true" />
- </filter>
-
-
- </appender>
-
- <root>
- <appender-ref ref="TEMP" />
- </root>
+ <appender name="TEMP" class="org.apache.log4j.FileAppender">
+ <param name="Append" value="false" />
+ <param name="File" value="temp" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
+ value="%-5p %c{2} - %m\n"/>
+ </layout>
+
+ <filter class="org.apache.log4j.varia.LevelMatchFilter">
+ <param name="LevelToMatch" value="WARN" />
+ <param name="AcceptOnMatch" value="true" />
+ </filter>
+
+
+ <filter class="org.apache.log4j.varia.DenyAllFilter"/>
+
+ </appender>
+
+ <root>
+ <appender-ref ref="TEMP" />
+ </root>
</log4j:configuration>
1.2 +17 -18 jakarta-log4j/src/java/org/apache/log4j/test/xml/domTest12.xml
Index: domTest12.xml
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/test/xml/domTest12.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- domTest12.xml 4 Oct 2001 20:57:57 -0000 1.1
+++ domTest12.xml 18 Feb 2002 21:43:31 -0000 1.2
@@ -4,22 +4,21 @@
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'
configDebug="true">
- <appender name="TEMP" class="org.apache.log4j.FileAppender">
- <param name="Append" value="false" />
- <param name="File" value="temp" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern"
- value="%-5p %c{2} - %m\n"/>
- </layout>
- <filter class="org.apache.log4j.varia.PriorityMatchFilter">
- <param name="PriorityToMatch" value="WARN" />
- <param name="AcceptOnMatch" value="false" />
- </filter>
-
-
- </appender>
-
- <root>
- <appender-ref ref="TEMP" />
- </root>
+ <appender name="TEMP" class="org.apache.log4j.FileAppender">
+ <param name="Append" value="false" />
+ <param name="File" value="temp" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
+ value="%-5p %c{2} - %m\n"/>
+ </layout>
+ <filter class="org.apache.log4j.varia.LevelMatchFilter">
+ <param name="LevelToMatch" value="WARN" />
+ <param name="AcceptOnMatch" value="false" />
+ </filter>
+
+ </appender>
+
+ <root>
+ <appender-ref ref="TEMP" />
+ </root>
</log4j:configuration>
1.4 +39 -7 jakarta-log4j/tests/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-log4j/tests/build.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- build.xml 18 Feb 2002 19:16:52 -0000 1.3
+++ build.xml 18 Feb 2002 21:43:31 -0000 1.4
@@ -31,6 +31,7 @@
<pathelement location="${project.classes.home}"/>
<pathelement location="${tests.source.home}"/>
<pathelement location="./classes"/>
+ <pathelement location="./resources"/>
<pathelement location="${jakarta.oro.jar}"/>
</path>
@@ -82,22 +83,29 @@
</target>
- <target name="run" depends="Minimum, OptionConverter, BoundedFIFO,
- DOM, CustomLevel"/>
+ <target name="run" depends="Minimum, Logger, OptionConverter, BoundedFIFO,
+ DOM, CustomLevel, CyclicBuffer, OR, DRFA"/>
<target name="Minimum" depends="build">
<junit printsummary="yes" fork="yes" haltonfailure="yes">
<classpath refid="tests.classpath"/>
- <formatter type="plain" />
+ <formatter type="plain" usefile="false" />
<test name="org.apache.log4j.MinimumTestCase" />
</junit>
</target>
+ <target name="Logger" depends="build">
+ <junit printsummary="yes" fork="yes" haltonfailure="yes">
+ <classpath refid="tests.classpath"/>
+ <formatter type="plain" usefile="false"/>
+ <test name="org.apache.log4j.LoggerTestCase" />
+ </junit>
+ </target>
<target name="DOM" depends="build">
<junit printsummary="yes" fork="yes" haltonfailure="yes">
<classpath refid="tests.classpath"/>
- <formatter type="plain" />
+ <formatter type="plain" usefile="false"/>
<test name="org.apache.log4j.xml.DOMTestCase" />
</junit>
</target>
@@ -105,7 +113,7 @@
<target name="CustomLevel" depends="build">
<junit printsummary="yes" fork="yes" haltonfailure="yes">
<classpath refid="tests.classpath"/>
- <formatter type="plain" />
+ <formatter type="plain" usefile="false" />
<test name="org.apache.log4j.xml.CustomLevelTestCase" />
</junit>
</target>
@@ -113,7 +121,7 @@
<target name="OptionConverter" depends="build">
<junit printsummary="yes" fork="yes" haltonfailure="yes">
<classpath refid="tests.classpath"/>
- <formatter type="plain" />
+ <formatter type="plain" usefile="false"/>
<test name="org.apache.log4j.helpers.OptionConverterTestCase" />
</junit>
</target>
@@ -121,8 +129,32 @@
<target name="BoundedFIFO" depends="build">
<junit printsummary="yes" fork="yes" haltonfailure="yes">
<classpath refid="tests.classpath"/>
- <formatter type="plain" />
+ <formatter type="plain" usefile="false"/>
<test name="org.apache.log4j.helpers.BoundedFIFOTestCase" />
+ </junit>
+ </target>
+
+ <target name="CyclicBuffer" depends="build">
+ <junit printsummary="yes" fork="yes" haltonfailure="yes">
+ <classpath refid="tests.classpath"/>
+ <formatter type="plain" usefile="false"/>
+ <test name="org.apache.log4j.helpers.CyclicBufferTestCase" />
+ </junit>
+ </target>
+
+ <target name="DRFA" depends="build">
+ <junit printsummary="yes" fork="yes" haltonfailure="yes">
+ <classpath refid="tests.classpath"/>
+ <formatter type="plain" usefile="false"/>
+ <test name="org.apache.log4j.DRFATestCase" />
+ </junit>
+ </target>
+
+ <target name="OR" depends="build">
+ <junit printsummary="yes" fork="yes" haltonfailure="yes">
+ <classpath refid="tests.classpath"/>
+ <formatter type="plain" usefile="false"/>
+ <test name="org.apache.log4j.or.ORTestCase" />
</junit>
</target>
1.1 jakarta-log4j/tests/resources/L7D_en_US.properties
Index: L7D_en_US.properties
===================================================================
test=This is the English, US test.
hello_world=Hello world.
msg1=This is test number {0} with string argument {1}.
1.1 jakarta-log4j/tests/resources/L7D_fr.properties
Index: L7D_fr.properties
===================================================================
test=Ceci est le test en francais pour la France.
hello_world=Bonjour la France.
msg1=Ceci est le test numero {0} contenant l''argument {1}.
1.1 jakarta-log4j/tests/resources/L7D_fr_CH.properties
Index: L7D_fr_CH.properties
===================================================================
test=Ceci est le test en francais pour la p'tite Suisse.
hello world=Salut le monde.
1.1 jakarta-log4j/tests/src/java/org/apache/log4j/DRFATestCase.java
Index: DRFATestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software
* License version 1.1, a copy of which has been included with this
* distribution in the LICENSE.APL file. */
// Altough located under org/apache/log4j/test, org.apache.log4j is
// the correct package.
package org.apache.log4j;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.framework.TestFailure;
import junit.framework.Test;
import org.apache.log4j.*;
public class DRFATestCase extends TestCase {
public DRFATestCase(String name) {
super(name);
}
public
void testComputeCheckPeriod() {
DailyRollingFileAppender drfa = new DailyRollingFileAppender();
drfa.setName("testComputeCheckPeriod");
drfa.setDatePattern("yyyy-MM-dd.'log'");
drfa.activateOptions();
int x = drfa.computeCheckPeriod();
int y = DailyRollingFileAppender.TOP_OF_DAY;
assertEquals(drfa.computeCheckPeriod(),
DailyRollingFileAppender.TOP_OF_DAY);
drfa.setDatePattern("yyyy-MM-dd mm.'log'");
assertEquals(drfa.computeCheckPeriod(),
DailyRollingFileAppender.TOP_OF_MINUTE);
drfa.setDatePattern("yyyy-MM-dd a.'log'");
assertEquals(drfa.computeCheckPeriod(),
DailyRollingFileAppender.HALF_DAY);
drfa.setDatePattern("yyyy-MM-dd HH.'log'");
assertEquals(drfa.computeCheckPeriod(),
DailyRollingFileAppender.TOP_OF_HOUR);
drfa.setDatePattern("yyyy-MM.'log'");
assertEquals(drfa.computeCheckPeriod(),
DailyRollingFileAppender.TOP_OF_MONTH);
drfa.setDatePattern("'log'HH'log'");
assertEquals(drfa.computeCheckPeriod(),
DailyRollingFileAppender.TOP_OF_HOUR);
}
public
void testRC1() {
RollingCalendar rc = new RollingCalendar();
rc.setType(DailyRollingFileAppender.TOP_OF_DAY);
Calendar c = Calendar.getInstance();
// jan, mar, may, july, aug, oct, dec have 31 days
int [] M31 = {0,2,4,6,7,9,11};
for(int i = 0; i < M31.length; i ++) {
for(int d = 1; d <=31; d++) {
for(int h = 0; h < 23; h++) {
c.clear();
c.set(Calendar.YEAR, 20);
c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
c.set(Calendar.DAY_OF_MONTH, d);
c.set(Calendar.HOUR_OF_DAY, h);
c.set(Calendar.MINUTE, 10);
c.set(Calendar.SECOND, 10);
c.set(Calendar.MILLISECOND, 88);
c.setTime(rc.getNextCheckDate(c.getTime()));
if(d == 31) {
assertEquals(c.get(Calendar.MONTH),(Calendar.JANUARY+M31[i]+1)%12);
assertEquals(c.get(Calendar.DAY_OF_MONTH), 1);
} else {
assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
assertEquals(c.get(Calendar.DAY_OF_MONTH), d+1);
}
assertEquals(c.get(Calendar.HOUR_OF_DAY), 0);
assertEquals(c.get(Calendar.MINUTE), 0);
assertEquals(c.get(Calendar.SECOND), 0);
assertEquals(c.get(Calendar.MILLISECOND), 0);
}
}
}
}
public
void testRC2() {
RollingCalendar rc = new RollingCalendar();
rc.setType(DailyRollingFileAppender.TOP_OF_HOUR);
Calendar c = Calendar.getInstance();
TimeZone tz = c.getTimeZone();
// jan, mar, may, july, aug, oct, dec have 31 days
int [] M31 = {0,2,4,6,7,9,11};
for(int i = 0; i < M31.length; i ++) {
System.out.println("Month = "+(M31[i]+1));
for(int d = 1; d <= 31; d++) {
for(int h = 0; h < 23; h++) {
for(int m = 0; m <= 59; m++) {
c.clear();
c.set(Calendar.YEAR, 20);
c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
c.set(Calendar.DAY_OF_MONTH, d);
c.set(Calendar.HOUR_OF_DAY, h);
c.set(Calendar.MINUTE, m);
c.set(Calendar.SECOND, 12);
c.set(Calendar.MILLISECOND, 88);
boolean dltState0 = c.getTimeZone().inDaylightTime(c.getTime());
c.setTime(rc.getNextCheckDate(c.getTime()));
boolean dltState1 = c.getTimeZone().inDaylightTime(c.getTime());
assertEquals(c.get(Calendar.MILLISECOND), 0);
assertEquals(c.get(Calendar.SECOND), 0);
assertEquals(c.get(Calendar.MINUTE), 0);
if(dltState0 == dltState1) {
assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+1)%24);
} else {
// returning to standard time
if(dltState0) {
assertEquals(c.get(Calendar.HOUR_OF_DAY), h);
} else { // switching to day light saving time
//System.err.println("m="+m+", h="+h+", d="+d+", i="+i);
//if(h==2) {
// System.err.println(c);
//}
//assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+2)%24);
}
}
if(h == 23) {
assertEquals(c.get(Calendar.DAY_OF_MONTH), (d+1)%32);
if(d == 31) {
assertEquals(c.get(Calendar.MONTH),
(Calendar.JANUARY+M31[i]+1)%12);
} else {
assertEquals(c.get(Calendar.MONTH),
Calendar.JANUARY+M31[i]);
}
} else {
assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
}
}
}
}
}
}
public
void testRC3() {
RollingCalendar rc = new RollingCalendar();
rc.setType(DailyRollingFileAppender.TOP_OF_MINUTE);
int[] S = {0, 1, 5, 10, 21, 30, 59};
int[] M = {0, 1, 5, 10, 21, 30, 59};
Calendar c = Calendar.getInstance();
// jan, mar, may, july, aug, oct, dec have 31 days
int [] M31 = {2,9,0,4,6,7,11};
for(int i = 0; i < M31.length; i ++) {
System.out.println("Month = "+(M31[i]+1));
for(int d = 1; d <= 31; d++) {
for(int h = 0; h < 23; h++) {
for(int m = 0; m < M.length; m++) {
for(int s = 0; s < S.length; s++) {
c.clear();
c.set(Calendar.YEAR, 20);
c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
c.set(Calendar.DAY_OF_MONTH, d);
c.set(Calendar.HOUR_OF_DAY, h);
c.set(Calendar.MINUTE, M[m]);
c.set(Calendar.SECOND, S[s]);
c.set(Calendar.MILLISECOND, 88);
c.add(Calendar.MILLISECOND, 1);
boolean dltState0 = c.getTimeZone().inDaylightTime(c.getTime());
c.setTime(rc.getNextCheckDate(c.getTime()));
c.add(Calendar.MILLISECOND, 0);
boolean dltState1 = c.getTimeZone().inDaylightTime(c.getTime());
assertEquals(c.get(Calendar.MILLISECOND), 0);
assertEquals(c.get(Calendar.SECOND), 0);
assertEquals(c.get(Calendar.MINUTE), (M[m]+1)%60);
if(M[m] == 59) {
if(dltState0 == dltState1) {
assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+1)%24);
}
if(h == 23) {
assertEquals(c.get(Calendar.DAY_OF_MONTH), (d+1)%32);
if(d == 31) {
assertEquals(c.get(Calendar.MONTH),
(Calendar.JANUARY+M31[i]+1)%12);
} else {
assertEquals(c.get(Calendar.MONTH),
Calendar.JANUARY+M31[i]);
}
} else {
assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
}
} else {
// allow discrepancies only if we are switching from std to dls time
if(c.get(Calendar.HOUR_OF_DAY) != h) {
c.add(Calendar.HOUR_OF_DAY, +1);
boolean dltState2 = c.getTimeZone().inDaylightTime(c.getTime());
if(dltState1 == dltState2) {
fail("No switch");
}
}
assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
}
}
}
}
}
}
}
public
static
Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new DRFATestCase("testComputeCheckPeriod"));
suite.addTest(new DRFATestCase("testRC1"));
suite.addTest(new DRFATestCase("testRC2"));
suite.addTest(new DRFATestCase("testRC3"));
return suite;
}
}
1.1 jakarta-log4j/tests/src/java/org/apache/log4j/LoggerTestCase.java
Index: LoggerTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software
* License version 1.1, a copy of which has been included with this
* distribution in the LICENSE.txt file. */
package org.apache.log4j;
import org.apache.log4j.*;
import org.apache.log4j.spi.*;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.framework.Test;
import java.util.Enumeration;
import java.util.ResourceBundle;
import java.util.Locale;
/**
Used for internal unit testing the Logger class.
@author Ceki Gülcü
*/
public class LoggerTestCase extends TestCase {
Logger logger;
Appender a1;
Appender a2;
ResourceBundle rbUS;
ResourceBundle rbFR;
ResourceBundle rbCH;
// A short message.
static String MSG = "M";
public LoggerTestCase(String name) {
super(name);
}
public
void setUp() {
rbUS = ResourceBundle.getBundle("L7D", new Locale("en", "US"));
assertNotNull(rbUS);
rbFR = ResourceBundle.getBundle("L7D", new Locale("fr", "FR"));
assertNotNull("Got a null resource bundle.", rbFR);
rbCH = ResourceBundle.getBundle("L7D", new Locale("fr", "CH"));
assertNotNull("Got a null resource bundle.", rbCH);
}
public
void tearDown() {
// Regular users should not use the clear method lightly!
//Logger.getDefaultHierarchy().clear();
BasicConfigurator.resetConfiguration();
a1 = null;
a2 = null;
}
/**
Add an appender and see if it can be retrieved.
*/
public
void testAppender1() {
logger = Logger.getLogger("test");
a1 = new FileAppender();
a1.setName("testAppender1");
logger.addAppender(a1);
Enumeration enum = logger.getAllAppenders();
Appender aHat = (Appender) enum.nextElement();
assertEquals(a1, aHat);
}
/**
Add an appender X, Y, remove X and check if Y is the only
remaining appender.
*/
public
void testAppender2() {
a1 = new FileAppender();
a1.setName("testAppender2.1");
a2 = new FileAppender();
a2.setName("testAppender2.2");
logger = Logger.getLogger("test");
logger.addAppender(a1);
logger.addAppender(a2);
logger.removeAppender("testAppender2.1");
Enumeration enum = logger.getAllAppenders();
Appender aHat = (Appender) enum.nextElement();
assertEquals(a2, aHat);
assert(!enum.hasMoreElements());
}
/**
Test if logger a.b inherits its appender from a.
*/
public
void testAdditivity1() {
Logger a = Logger.getLogger("a");
Logger ab = Logger.getLogger("a.b");
CountingAppender ca = new CountingAppender();
a.addAppender(ca);
assertEquals(ca.counter, 0);
ab.debug(MSG); assertEquals(ca.counter, 1);
ab.info(MSG); assertEquals(ca.counter, 2);
ab.warn(MSG); assertEquals(ca.counter, 3);
ab.error(MSG); assertEquals(ca.counter, 4);
}
/**
Test multiple additivity.
*/
public
void testAdditivity2() {
Logger a = Logger.getLogger("a");
Logger ab = Logger.getLogger("a.b");
Logger abc = Logger.getLogger("a.b.c");
Logger x = Logger.getLogger("x");
CountingAppender ca1 = new CountingAppender();
CountingAppender ca2 = new CountingAppender();
a.addAppender(ca1);
abc.addAppender(ca2);
assertEquals(ca1.counter, 0);
assertEquals(ca2.counter, 0);
ab.debug(MSG);
assertEquals(ca1.counter, 1);
assertEquals(ca2.counter, 0);
abc.debug(MSG);
assertEquals(ca1.counter, 2);
assertEquals(ca2.counter, 1);
x.debug(MSG);
assertEquals(ca1.counter, 2);
assertEquals(ca2.counter, 1);
}
/**
Test additivity flag.
*/
public
void testAdditivity3() {
Logger root = Logger.getRootLogger();
Logger a = Logger.getLogger("a");
Logger ab = Logger.getLogger("a.b");
Logger abc = Logger.getLogger("a.b.c");
Logger x = Logger.getLogger("x");
CountingAppender caRoot = new CountingAppender();
CountingAppender caA = new CountingAppender();
CountingAppender caABC = new CountingAppender();
root.addAppender(caRoot);
a.addAppender(caA);
abc.addAppender(caABC);
assertEquals(caRoot.counter, 0);
assertEquals(caA.counter, 0);
assertEquals(caABC.counter, 0);
ab.setAdditivity(false);
a.debug(MSG);
assertEquals(caRoot.counter, 1);
assertEquals(caA.counter, 1);
assertEquals(caABC.counter, 0);
ab.debug(MSG);
assertEquals(caRoot.counter, 1);
assertEquals(caA.counter, 1);
assertEquals(caABC.counter, 0);
abc.debug(MSG);
assertEquals(caRoot.counter, 1);
assertEquals(caA.counter, 1);
assertEquals(caABC.counter, 1);
}
public
void testDisable1() {
CountingAppender caRoot = new CountingAppender();
Logger root = Logger.getRootLogger();
root.addAppender(caRoot);
LoggerRepository h = Category.getDefaultHierarchy();
//h.disableDebug();
h.setThreshold((Level) Level.INFO);
assertEquals(caRoot.counter, 0);
root.debug(MSG); assertEquals(caRoot.counter, 0);
root.info(MSG); assertEquals(caRoot.counter, 1);
root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 2);
root.warn(MSG); assertEquals(caRoot.counter, 3);
//h.disableInfo();
h.setThreshold((Level) Level.WARN);
root.debug(MSG); assertEquals(caRoot.counter, 3);
root.info(MSG); assertEquals(caRoot.counter, 3);
root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 4);
root.error(MSG); assertEquals(caRoot.counter, 5);
root.log(Level.ERROR, MSG); assertEquals(caRoot.counter, 6);
//h.disableAll();
h.setThreshold(Level.OFF);
root.debug(MSG); assertEquals(caRoot.counter, 6);
root.info(MSG); assertEquals(caRoot.counter, 6);
root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 6);
root.error(MSG); assertEquals(caRoot.counter, 6);
root.log(Level.FATAL, MSG); assertEquals(caRoot.counter, 6);
root.log(Level.FATAL, MSG); assertEquals(caRoot.counter, 6);
//h.disable(Level.FATAL);
h.setThreshold(Level.OFF);
root.debug(MSG); assertEquals(caRoot.counter, 6);
root.info(MSG); assertEquals(caRoot.counter, 6);
root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 6);
root.error(MSG); assertEquals(caRoot.counter, 6);
root.log(Level.ERROR, MSG); assertEquals(caRoot.counter, 6);
root.log(Level.FATAL, MSG); assertEquals(caRoot.counter, 6);
}
public
void testRB1() {
Logger root = Logger.getRootLogger();
root.setResourceBundle(rbUS);
ResourceBundle t = root.getResourceBundle();
assertSame(t, rbUS);
Logger x = Logger.getLogger("x");
Logger x_y = Logger.getLogger("x.y");
Logger x_y_z = Logger.getLogger("x.y.z");
t = x.getResourceBundle(); assertSame(t, rbUS);
t = x_y.getResourceBundle(); assertSame(t, rbUS);
t = x_y_z.getResourceBundle(); assertSame(t, rbUS);
}
public
void testRB2() {
Logger root = Logger.getRootLogger();
root.setResourceBundle(rbUS);
ResourceBundle t = root.getResourceBundle();
assertSame(t, rbUS);
Logger x = Logger.getLogger("x");
Logger x_y = Logger.getLogger("x.y");
Logger x_y_z = Logger.getLogger("x.y.z");
x_y.setResourceBundle(rbFR);
t = x.getResourceBundle(); assertSame(t, rbUS);
t = x_y.getResourceBundle(); assertSame(t, rbFR);
t = x_y_z.getResourceBundle(); assertSame(t, rbFR);
}
public
void testRB3() {
Logger root = Logger.getRootLogger();
root.setResourceBundle(rbUS);
ResourceBundle t = root.getResourceBundle();
assertSame(t, rbUS);
Logger x = Logger.getLogger("x");
Logger x_y = Logger.getLogger("x.y");
Logger x_y_z = Logger.getLogger("x.y.z");
x_y.setResourceBundle(rbFR);
x_y_z.setResourceBundle(rbCH);
t = x.getResourceBundle(); assertSame(t, rbUS);
t = x_y.getResourceBundle(); assertSame(t, rbFR);
t = x_y_z.getResourceBundle(); assertSame(t, rbCH);
}
public
void testExists() {
Logger a = Logger.getLogger("a");
Logger a_b = Logger.getLogger("a.b");
Logger a_b_c = Logger.getLogger("a.b.c");
Logger t;
t = Logger.exists("xx"); assertNull(t);
t = Logger.exists("a"); assertSame(a, t);
t = Logger.exists("a.b"); assertSame(a_b, t);
t = Logger.exists("a.b.c"); assertSame(a_b_c, t);
}
public
void testHierarchy1() {
Hierarchy h = new Hierarchy(new RootCategory((Level) Level.ERROR));
Logger a0 = h.getLogger("a");
assertEquals("a", a0.getName());
assertNull(a0.getLevel());
assertSame(Level.ERROR, a0.getChainedLevel());
Logger a1 = h.getLogger("a");
assertSame(a0, a1);
}
public
static
Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new LoggerTestCase("testAppender1"));
suite.addTest(new LoggerTestCase("testAppender2"));
suite.addTest(new LoggerTestCase("testAdditivity1"));
suite.addTest(new LoggerTestCase("testAdditivity2"));
suite.addTest(new LoggerTestCase("testAdditivity3"));
suite.addTest(new LoggerTestCase("testDisable1"));
suite.addTest(new LoggerTestCase("testRB1"));
suite.addTest(new LoggerTestCase("testRB2"));
suite.addTest(new LoggerTestCase("testRB3"));
suite.addTest(new LoggerTestCase("testExists"));
suite.addTest(new LoggerTestCase("testHierarchy1"));
return suite;
}
static private class CountingAppender extends AppenderSkeleton {
int counter;
CountingAppender() {
counter = 0;
}
public void close() {
}
public
void append(LoggingEvent event) {
counter++;
}
public
boolean requiresLayout() {
return true;
}
}
}
1.1 jakarta-log4j/tests/src/java/org/apache/log4j/helpers/CyclicBufferTestCase.java
Index: CyclicBufferTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software
* License version 1.1, a copy of which has been included with this
* distribution in the LICENSE.txt file. */
//
// Log4j uses the JUnit framework for internal unit testing. JUnit
// available from
//
// http://www.junit.org
package org.apache.log4j.helpers;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.Category;
import org.apache.log4j.Priority;
import org.apache.log4j.helpers.CyclicBuffer;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.framework.TestFailure;
import junit.framework.Test;
/**
Unit test the {@link CyclicBuffer}.
@author Ceki Gülcü
*/
public class CyclicBufferTestCase extends TestCase {
static Category cat = Category.getInstance("x");
static int MAX = 1000;
static LoggingEvent[] e = new LoggingEvent[MAX];
{
for (int i = 0; i < MAX; i++) {
e[i] = new LoggingEvent("", cat, Priority.DEBUG, "e"+i, null);
}
}
public CyclicBufferTestCase(String name) {
super(name);
}
public
void setUp() {
}
public
void test0() {
int size = 2;
CyclicBuffer cb = new CyclicBuffer(size);
assertEquals(cb.getMaxSize(), size);
cb.add(e[0]);
assertEquals(cb.length(), 1);
assertEquals(cb.get(), e[0]); assertEquals(cb.length(), 0);
assertNull(cb.get()); assertEquals(cb.length(), 0);
cb = new CyclicBuffer(size);
cb.add(e[0]);
cb.add(e[1]);
assertEquals(cb.length(), 2);
assertEquals(cb.get(), e[0]); assertEquals(cb.length(), 1);
assertEquals(cb.get(), e[1]); assertEquals(cb.length(), 0);
assertNull(cb.get()); assertEquals(cb.length(), 0);
}
/**
Test a buffer of size 1,2,4,8,..,128
*/
public
void test1() {
for(int bufSize = 1; bufSize <= 128; bufSize *=2)
doTest1(bufSize);
}
void doTest1(int size) {
//System.out.println("Doing test with size = "+size);
CyclicBuffer cb = new CyclicBuffer(size);
assertEquals(cb.getMaxSize(), size);
for(int i = -(size+10); i < (size+10); i++) {
assertNull(cb.get(i));
}
for(int i = 0; i < MAX; i++) {
cb.add(e[i]);
int limit = i < size-1 ? i : size-1;
//System.out.println("\nLimit is " + limit + ", i="+i);
for(int j = limit; j >= 0; j--) {
//System.out.println("i= "+i+", j="+j);
assertEquals(cb.get(j), e[i-(limit-j)]);
}
assertNull(cb.get(-1));
assertNull(cb.get(limit+1));
}
}
public
void testResize() {
for(int isize = 1; isize <= 128; isize *=2) {
doTestResize(isize, isize/2+1, isize/2+1);
doTestResize(isize, isize/2+1, isize+10);
doTestResize(isize, isize+10, isize/2+1);
doTestResize(isize, isize+10, isize+10);
}
}
void doTestResize(int initialSize, int numberOfAdds, int newSize) {
//System.out.println("initialSize = "+initialSize+", numberOfAdds="
// +numberOfAdds+", newSize="+newSize);
CyclicBuffer cb = new CyclicBuffer(initialSize);
for(int i = 0; i < numberOfAdds; i++) {
cb.add(e[i]);
}
cb.resize(newSize);
int offset = numberOfAdds - initialSize;
if(offset< 0)
offset = 0;
int len = newSize < numberOfAdds ? newSize : numberOfAdds;
len = len < initialSize ? len : initialSize;
//System.out.println("Len = "+len+", offset="+offset);
for(int j = 0; j < len; j++) {
assertEquals(cb.get(j), e[offset+j]);
}
}
public
static
Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new CyclicBufferTestCase("test0"));
suite.addTest(new CyclicBufferTestCase("test1"));
suite.addTest(new CyclicBufferTestCase("testResize"));
return suite;
}
}
1.1 jakarta-log4j/tests/src/java/org/apache/log4j/or/ORTestCase.java
Index: ORTestCase.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software
* License version 1.1, a copy of which has been included with this
* distribution in the LICENSE.txt file. */
//
// Log4j uses the JUnit framework for internal unit testing. JUnit
// available from
//
// http://www.junit.org
package org.apache.log4j.or;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.Category;
import org.apache.log4j.Priority;
import org.apache.log4j.or.ObjectRenderer;
import org.apache.log4j.or.RendererMap;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.framework.TestFailure;
import junit.framework.Test;
import java.io.Serializable;
/**
Unit test the {@link ObjectRenderer}.
@author Ceki Gülcü
@since 1.0 */
public class ORTestCase extends TestCase {
static UTObjectRenderer aor;
static UTObjectRenderer bor;
static UTObjectRenderer xor;
static UTObjectRenderer yor;
static UTObjectRenderer oor;
static UTObjectRenderer nor;
static UTObjectRenderer ior;
static UTObjectRenderer cor;
static UTObjectRenderer sor;
public ORTestCase(String name) {
super(name);
}
public
void setUp() {
aor = new UTObjectRenderer("A");
bor = new UTObjectRenderer("B");
xor = new UTObjectRenderer("X");
yor = new UTObjectRenderer("Y");
oor = new UTObjectRenderer("Object");
nor = new UTObjectRenderer("Number");
ior = new UTObjectRenderer("Integer");
cor = new UTObjectRenderer("Comparable");
sor = new UTObjectRenderer("Serializable");
}
// Add: no renderer
// Expect: defaultRenderer
public
void test1() {
RendererMap map = new RendererMap();
ObjectRenderer dr = map.getDefaultRenderer();
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, dr);
}
// Add: Integer renderer
// Expect: Integer renderer
public
void test2() {
RendererMap map = new RendererMap();
map.put(Integer.class, ior);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, ior);
}
// Add: Number renderer
// Expect: Number
public
void test3() {
RendererMap map = new RendererMap();
map.put(Number.class, ior);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, ior);
}
// Add: Object renderer
// Result: Object
public
void test4() {
RendererMap map = new RendererMap();
map.put(Object.class, oor);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, oor);
}
// Add: Object, Number, Integer
// Expect: Integer
public
void test5() {
RendererMap map = new RendererMap();
map.put(Object.class, oor);
map.put(Number.class, nor);
map.put(Integer.class, ior);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, ior);
}
// Add: Object, Number
// Expect: Number
public
void test6() {
RendererMap map = new RendererMap();
map.put(Object.class, oor);
map.put(Number.class, nor);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, nor);
}
// Add: Comparable
// Expect: Comparable
public
void test7() {
RendererMap map = new RendererMap();
map.put(Comparable.class, cor);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, cor);
}
// Add: Serializable
// Expect: Serializablee
public
void test8() {
RendererMap map = new RendererMap();
map.put(Serializable.class, sor);
ObjectRenderer r = map.get(Integer.class);
assertEquals(r, sor);
}
// Add: Y
// Expect: Y
public
void test9() {
RendererMap map = new RendererMap();
map.put(Y.class, yor);
ObjectRenderer r = map.get(B.class);
assertEquals(r, yor);
}
// Add: X
// Expect: X
public
void test10() {
RendererMap map = new RendererMap();
map.put(X.class, xor);
ObjectRenderer r = map.get(B.class);
assertEquals(r, xor);
}
public
static
Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new ORTestCase("test1"));
suite.addTest(new ORTestCase("test2"));
suite.addTest(new ORTestCase("test3"));
suite.addTest(new ORTestCase("test4"));
suite.addTest(new ORTestCase("test5"));
suite.addTest(new ORTestCase("test6"));
suite.addTest(new ORTestCase("test7"));
suite.addTest(new ORTestCase("test8"));
suite.addTest(new ORTestCase("test9"));
suite.addTest(new ORTestCase("test10"));
return suite;
}
}
class UTObjectRenderer implements ObjectRenderer {
String name;
UTObjectRenderer(String name) {
this.name = name;
}
public
String doRender(Object o) {
return name;
}
public
String toString() {
return("UTObjectRenderer: "+name);
}
}
interface X {
}
interface Y extends X {
}
class A implements Y {
}
class B extends A {
}
1.1 jakarta-log4j/tests/src/java/org/apache/log4j/util/AbsoluteTDFFilter.java
Index: AbsoluteTDFFilter.java
===================================================================
package org.apache.log4j.util;
import java.io.*;
import org.apache.oro.text.perl.Perl5Util;
public class AbsoluteTDFFilter implements Filter {
Perl5Util util = new Perl5Util();
String datePat;
// 18 fevr. 2002 20:05:36,222
static public final String ADAT_PAT = "^\\d{1,2} .{2,6} 200\\d \\d{2}:\\d{2}:\\d{2},\\d{3}";
public AbsoluteTDFFilter(String datePat) {
this.datePat = datePat;
}
public
String filter(String in) {
String pat = "/"+datePat+"/";
if(util.match(pat, in)) {
return util.substitute("s/"+datePat+"//", in);
} else {
return in;
}
}
}
1.2 +0 -2 jakarta-log4j/tests/src/java/org/apache/log4j/xml/DOMTestCase.java
Index: DOMTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/xml/DOMTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DOMTestCase.java 18 Feb 2002 15:17:23 -0000 1.1
+++ DOMTestCase.java 18 Feb 2002 21:43:32 -0000 1.2
@@ -44,10 +44,8 @@
}
public void setUp() {
- System.out.println("===================SETUP======================");
root = Logger.getRootLogger();
logger = Logger.getLogger(DOMTestCase.class);
-
}
public void test1() throws Exception {
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>