ceki 02/02/18 11:16:53 Modified: tests build.xml tests/input/xml customLevel1.xml tests/src/java/org/apache/log4j/util ISO8601Filter.java Transformer.java Added: tests/src/java/org/apache/log4j MinimumTestCase.java tests/src/java/org/apache/log4j/helpers BoundedFIFOTestCase.java tests/src/java/org/apache/log4j/net SocketAppenderTest.java tests/src/java/org/apache/log4j/xml CustomLevelTestCase.java XLevel.java tests/witness customLevel.2 customLevel.3 simple ttcc Log: More tests. Revision Changes Path 1.3 +4 -3 jakarta-log4j/tests/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/jakarta-log4j/tests/build.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- build.xml 18 Feb 2002 17:36:36 -0000 1.2 +++ build.xml 18 Feb 2002 19:16:52 -0000 1.3 @@ -82,13 +82,14 @@ </target> - <target name="run" depends="OptionConverter, BoundedFIFO, DOM, CustomLevel"/> + <target name="run" depends="Minimum, OptionConverter, BoundedFIFO, + DOM, CustomLevel"/> - <target name="last" depends="build"> + <target name="Minimum" depends="build"> <junit printsummary="yes" fork="yes" haltonfailure="yes"> <classpath refid="tests.classpath"/> <formatter type="plain" /> - <test name="org.apache.log4j.Last" /> + <test name="org.apache.log4j.MinimumTestCase" /> </junit> </target> 1.2 +1 -2 jakarta-log4j/tests/input/xml/customLevel1.xml Index: customLevel1.xml =================================================================== RCS file: /home/cvs/jakarta-log4j/tests/input/xml/customLevel1.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- customLevel1.xml 18 Feb 2002 17:36:36 -0000 1.1 +++ customLevel1.xml 18 Feb 2002 19:16:52 -0000 1.2 @@ -1,8 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> -<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' - debug="true"> +<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="TEMP" class="org.apache.log4j.FileAppender"> <param name="Append" value="false" /> 1.1 jakarta-log4j/tests/src/java/org/apache/log4j/MinimumTestCase.java Index: MinimumTestCase.java =================================================================== package org.apache.log4j; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.framework.Test; import org.apache.log4j.*; import org.apache.log4j.helpers.AbsoluteTimeDateFormat; import org.apache.log4j.util.*; public class MinimumTestCase extends TestCase { static String FILTERED = "output/filtered"; static String EXCEPTION1 = "java.lang.Exception: Just testing"; static String EXCEPTION2 = "\\s*at .*\\(.*:\\d{1,4}\\)"; static String EXCEPTION3 = "\\s*at .*\\(Native Method\\)"; //18 fevr. 2002 20:02:41,551 [main] FATAL ERR - Message 0 static String TTCC_PAT = AbsoluteTDFFilter.ADAT_PAT+ " \\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message \\d{1,2}"; static String TTCC2_PAT = AbsoluteTDFFilter.ADAT_PAT+ " \\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Messages should bear numbers 0 through 23\\."; //18 fvr. 2002 19:49:53,456 Logger root; Logger logger; public MinimumTestCase(String name) { super(name); } public void setUp() { root = Logger.getRootLogger(); root.removeAllAppenders(); } public void simple() throws Exception { Layout layout = new SimpleLayout(); Appender appender = new FileAppender(layout, "output/simple", false); root.addAppender(appender); common(); Transformer.transform("output/simple", FILTERED, new LineNumberFilter()); assert(Compare.compare(FILTERED, "witness/simple")); } public void ttcc() throws Exception { Layout layout = new TTCCLayout(AbsoluteTimeDateFormat.DATE_AND_TIME_DATE_FORMAT); Appender appender = new FileAppender(layout, "output/ttcc", false); root.addAppender(appender); common(); ControlFilter cf1 = new ControlFilter(new String[]{TTCC_PAT, TTCC2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3}); Transformer.transform("output/ttcc", FILTERED, new Filter[] {cf1, new LineNumberFilter(), new AbsoluteTDFFilter(AbsoluteTDFFilter.ADAT_PAT)}); assert(Compare.compare(FILTERED, "witness/ttcc")); } void common() { int i = 0; // In the lines below, the category names are chosen as an aid in // remembering their level values. In general, the category names // have no bearing to level values. Logger ERR = Logger.getLogger("ERR"); ERR.setLevel(Level.ERROR); Logger INF = Logger.getLogger("INF"); INF.setLevel(Level.INFO); Logger INF_ERR = Logger.getLogger("INF.ERR"); INF_ERR.setLevel(Level.ERROR); Logger DEB = Logger.getLogger("DEB"); DEB.setLevel(Level.DEBUG); // Note: categories with undefined level Logger INF_UNDEF = Logger.getLogger("INF.UNDEF"); Logger INF_ERR_UNDEF = Logger.getLogger("INF.ERR.UNDEF"); Logger UNDEF = Logger.getLogger("UNDEF"); // These should all log.---------------------------- ERR.log(Level.FATAL, "Message " + i); i++; //0 ERR.error( "Message " + i); i++; INF.log(Level.FATAL, "Message " + i); i++; // 2 INF.error( "Message " + i); i++; INF.warn ( "Message " + i); i++; INF.info ( "Message " + i); i++; INF_UNDEF.log(Level.FATAL, "Message " + i); i++; //6 INF_UNDEF.error( "Message " + i); i++; INF_UNDEF.warn ( "Message " + i); i++; INF_UNDEF.info ( "Message " + i); i++; INF_ERR.log(Level.FATAL, "Message " + i); i++; // 10 INF_ERR.error( "Message " + i); i++; INF_ERR_UNDEF.log(Level.FATAL, "Message " + i); i++; INF_ERR_UNDEF.error( "Message " + i); i++; DEB.log(Level.FATAL, "Message " + i); i++; //14 DEB.error( "Message " + i); i++; DEB.warn ( "Message " + i); i++; DEB.info ( "Message " + i); i++; DEB.debug( "Message " + i); i++; // defaultLevel=DEBUG UNDEF.log(Level.FATAL, "Message " + i); i++; // 19 UNDEF.error("Message " + i); i++; UNDEF.warn ("Message " + i); i++; UNDEF.info ("Message " + i); i++; UNDEF.debug("Message " + i, new Exception("Just testing.")); i++; // ------------------------------------------------- // The following should not log ERR.warn("Message " + i); i++; ERR.info("Message " + i); i++; ERR.debug("Message " + i); i++; INF.debug("Message " + i); i++; INF_UNDEF.debug("Message " + i); i++; INF_ERR.warn("Message " + i); i++; INF_ERR.info("Message " + i); i++; INF_ERR.debug("Message " + i); i++; INF_ERR_UNDEF.warn("Message " + i); i++; INF_ERR_UNDEF.info("Message " + i); i++; INF_ERR_UNDEF.debug("Message " + i); i++; // ------------------------------------------------- INF.info("Messages should bear numbers 0 through 23."); } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new MinimumTestCase("simple")); suite.addTest(new MinimumTestCase("ttcc")); return suite; } } 1.1 jakarta-log4j/tests/src/java/org/apache/log4j/helpers/BoundedFIFOTestCase.java Index: BoundedFIFOTestCase.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.BoundedFIFO; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.framework.TestFailure; import junit.framework.Test; /** Unit test the {@link BoundedFIFO}. @author Ceki Gülcü @since 0.9.1 */ public class BoundedFIFOTestCase 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 BoundedFIFOTestCase(String name) { super(name); } public void setUp() { } /** Pattern: +++++..-----.. */ public void test1() { for(int size = 1; size <= 128; size *=2) { BoundedFIFO bf = new BoundedFIFO(size); assertEquals(bf.getMaxSize(), size); assertNull(bf.get()); int i; int j; int k; for(i = 1; i < 2*size; i++) { for(j = 0; j < i; j++) { //System.out.println("Putting "+e[j]); bf.put(e[j]); assertEquals(bf.length(), j < size ? j+1 : size); } int max = size < j ? size : j; j--; for(k = 0; k <= j; k++) { //System.out.println("max="+max+", j="+j+", k="+k); assertEquals(bf.length(), max - k > 0 ? max - k : 0); Object r = bf.get(); //System.out.println("Got "+r); if(k >= size) assertNull(r); else assertEquals(r, e[k]); } } //System.out.println("Passed size="+size); } } /** Pattern: ++++--++--++ */ public void test2() { int size = 3; BoundedFIFO bf = new BoundedFIFO(size); bf.put(e[0]); assertEquals(bf.get(), e[0]); assertNull(bf.get()); bf.put(e[1]); assertEquals(bf.length(), 1); bf.put(e[2]); assertEquals(bf.length(), 2); bf.put(e[3]); assertEquals(bf.length(), 3); assertEquals(bf.get(), e[1]); assertEquals(bf.length(), 2); assertEquals(bf.get(), e[2]); assertEquals(bf.length(), 1); assertEquals(bf.get(), e[3]); assertEquals(bf.length(), 0); assertNull(bf.get()); assertEquals(bf.length(), 0); } int min(int a, int b) { return a < b ? a : b; } /** Pattern ++++++++++++++++++++ (insert only); */ public void testResize1() { int size = 10; for(int n = 1; n < size*2; n++) { for(int i = 0; i < size*2; i++) { BoundedFIFO bf = new BoundedFIFO(size); for(int f = 0; f < i; f++) { bf.put(e[f]); } bf.resize(n); int expectedSize = min(n, min(i, size)); assertEquals(bf.length(), expectedSize); for(int c = 0; c < expectedSize; c++) { assertEquals(bf.get(), e[c]); } } } } /** Pattern ++...+ --...- */ public void testResize2() { int size = 10; for(int n = 1; n < size*2; n++) { for(int i = 0; i < size*2; i++) { for(int d = 0; d < min(i,size); d++) { BoundedFIFO bf = new BoundedFIFO(size); for(int p = 0; p < i; p++) { bf.put(e[p]); } for(int g = 0; g < d; g++) { bf.get(); } // x = the number of elems in int x = bf.length(); bf.resize(n); int expectedSize = min(n, x); assertEquals(bf.length(), expectedSize); for(int c = 0; c < expectedSize; c++) { assertEquals(bf.get(), e[c+d]); } assertNull(bf.get()); } } } } /** Pattern: i inserts, d deletes, r inserts */ public void testResize3() { int size = 10; for(int n = 1; n < size*2; n++) { for(int i = 0; i < size; i++) { for(int d = 0; d < i; d++) { for(int r = 0; r < d; r++) { BoundedFIFO bf = new BoundedFIFO(size); for(int p0 = 0; p0 < i; p0++) bf.put(e[p0]); for(int g = 0; g < d; g++) bf.get(); for(int p1 = 0; p1 < r; p1++) bf.put(e[i+p1]); int x = bf.length(); bf.resize(n); int expectedSize = min(n, x); assertEquals(bf.length(), expectedSize); for(int c = 0; c < expectedSize; c++) { assertEquals(bf.get(), e[c+d]); } //assertNull(bf.get()); } } } } } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new BoundedFIFOTestCase("test1")); suite.addTest(new BoundedFIFOTestCase("test2")); suite.addTest(new BoundedFIFOTestCase("testResize1")); suite.addTest(new BoundedFIFOTestCase("testResize2")); suite.addTest(new BoundedFIFOTestCase("testResize3")); return suite; } } 1.1 jakarta-log4j/tests/src/java/org/apache/log4j/net/SocketAppenderTest.java Index: SocketAppenderTest.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. */ package org.apache.log4j.test; import org.apache.log4j.xml.DOMConfigurator; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.Logger; import org.apache.log4j.LogManager; import org.apache.log4j.NDC; import org.apache.log4j.xml.XLevel; import org.apache.log4j.Priority; import java.io.IOException; import java.util.Enumeration; /** @author Ceki Gülcü */ public class SocketAppenderTest { static Logger logger = Logger.getLogger(SocketAppenderTest.class); public static void main(String argv[]) { if(argv.length == 1) init(argv[0]); else usage("Wrong number of arguments."); test(); } static void usage(String msg) { System.err.println(msg); System.err.println( "Usage: java "+ SocketAppenderTest.class.getName()+ " configFile"); System.exit(1); } static void init(String configFile) { if(configFile.endsWith(".xml")) DOMConfigurator.configure(configFile); else PropertyConfigurator.configure(configFile); } static void test() { int i = -1; NDC.push("NDC"); Logger root = Logger.getRootLogger(); logger.log(XLevel.TRACE, "Message " + ++i); logger.debug("Message " + ++i); root.debug("Message " + ++i); logger.info("Message " + ++i); logger.warn("Message " + ++i); logger.log(XLevel.LETHAL, "Message " + ++i); //5 Exception e = new Exception("Just testing"); logger.debug("Message " + ++i, e); root.error("Message " + ++i, e); LogManager.shutdown(); } static void delay(int amount) { try { Thread.currentThread().sleep(amount); } catch(Exception e) {} } } 1.2 +2 -0 jakarta-log4j/tests/src/java/org/apache/log4j/util/ISO8601Filter.java Index: ISO8601Filter.java =================================================================== RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/util/ISO8601Filter.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ISO8601Filter.java 18 Feb 2002 15:17:23 -0000 1.1 +++ ISO8601Filter.java 18 Feb 2002 19:16:52 -0000 1.2 @@ -9,6 +9,8 @@ Perl5Util util = new Perl5Util(); + + public String filter(String in) { String pat = "/"+ISO8601_PAT +"/"; 1.2 +1 -1 jakarta-log4j/tests/src/java/org/apache/log4j/util/Transformer.java Index: Transformer.java =================================================================== RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/util/Transformer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Transformer.java 18 Feb 2002 15:17:23 -0000 1.1 +++ Transformer.java 18 Feb 2002 19:16:52 -0000 1.2 @@ -16,7 +16,7 @@ Perl5Util util = new Perl5Util(); String line; BufferedReader input = new BufferedReader(new FileReader(in)); - PrintStream output = new PrintStream(new FileOutputStream(out)); + PrintStream output = new PrintStream(new FileOutputStream(out, false)); // Initialization of input and output omitted while((line = input.readLine()) != null) { 1.1 jakarta-log4j/tests/src/java/org/apache/log4j/xml/CustomLevelTestCase.java Index: CustomLevelTestCase.java =================================================================== package org.apache.log4j.xml; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.framework.Test; import org.apache.log4j.Logger; import org.apache.log4j.Level; import org.apache.log4j.util.Filter; import org.apache.log4j.util.LineNumberFilter; import org.apache.log4j.util.ControlFilter; import org.apache.log4j.util.ISO8601Filter; import org.apache.log4j.util.Transformer; import org.apache.log4j.util.Compare; public class CustomLevelTestCase extends TestCase { static String TEMP = "output/temp"; Logger root; Logger logger; public CustomLevelTestCase(String name) { super(name); } public void setUp() { root = Logger.getRootLogger(); logger = Logger.getLogger(CustomLevelTestCase.class); } public void test1() throws Exception { DOMConfigurator.configure("input/xml/customLevel1.xml"); common(); assert(Compare.compare(TEMP, "witness/customLevel.1")); } public void test2() throws Exception { DOMConfigurator.configure("input/xml/customLevel2.xml"); common(); assert(Compare.compare(TEMP, "witness/customLevel.2")); } public void test3() throws Exception { DOMConfigurator.configure("input/xml/customLevel3.xml"); common(); assert(Compare.compare(TEMP, "witness/customLevel.3")); } void common() { int i = 0; logger.debug("Message " + ++i); logger.info ("Message " + ++i); logger.warn ("Message " + ++i); logger.error("Message " + ++i); logger.log(XLevel.TRACE, "Message " + ++i); } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new CustomLevelTestCase("test1")); suite.addTest(new CustomLevelTestCase("test2")); suite.addTest(new CustomLevelTestCase("test3")); return suite; } } 1.1 jakarta-log4j/tests/src/java/org/apache/log4j/xml/XLevel.java Index: XLevel.java =================================================================== package org.apache.log4j.xml; import org.apache.log4j.Level; import org.apache.log4j.Priority; /** This class introduces a new level level called TRACE. TRACE has lower level than DEBUG. */ public class XLevel extends Level { static public final int TRACE_INT = Level.DEBUG_INT - 1; static public final int LETHAL_INT = Level.FATAL_INT + 1; private static String TRACE_STR = "TRACE"; private static String LETHAL_STR = "LETHAL"; public static final XLevel TRACE = new XLevel(TRACE_INT, TRACE_STR, 7); public static final XLevel LETHAL = new XLevel(LETHAL_INT, LETHAL_STR, 0); protected XLevel(int level, String strLevel, int syslogEquiv) { super(level, strLevel, syslogEquiv); } /** Convert the string passed as argument to a level. If the conversion fails, then this method returns {@link #TRACE}. */ public static Level toLevel(String sArg) { return (Level) toLevel(sArg, XLevel.TRACE); } public static Level toLevel(String sArg, Level defaultValue) { if(sArg == null) { return defaultValue; } String stringVal = sArg.toUpperCase(); if(stringVal.equals(TRACE_STR)) { return XLevel.TRACE; } else if(stringVal.equals(LETHAL_STR)) { return XLevel.LETHAL; } return Level.toLevel(sArg, (Level) defaultValue); } public static Level toLevel(int i) throws IllegalArgumentException { switch(i) { case TRACE_INT: return XLevel.TRACE; case LETHAL_INT: return XLevel.LETHAL; } return Level.toLevel(i); } } 1.1 jakarta-log4j/tests/witness/customLevel.2 Index: customLevel.2 =================================================================== DEBUG xml.CustomLevelTestCase - Message 1 INFO xml.CustomLevelTestCase - Message 2 WARN xml.CustomLevelTestCase - Message 3 ERROR xml.CustomLevelTestCase - Message 4 TRACE xml.CustomLevelTestCase - Message 5 1.1 jakarta-log4j/tests/witness/customLevel.3 Index: customLevel.3 =================================================================== TRACE xml.CustomLevelTestCase - Message 5 1.1 jakarta-log4j/tests/witness/simple Index: simple =================================================================== FATAL - Message 0 ERROR - Message 1 FATAL - Message 2 ERROR - Message 3 WARN - Message 4 INFO - Message 5 FATAL - Message 6 ERROR - Message 7 WARN - Message 8 INFO - Message 9 FATAL - Message 10 ERROR - Message 11 FATAL - Message 12 ERROR - Message 13 FATAL - Message 14 ERROR - Message 15 WARN - Message 16 INFO - Message 17 DEBUG - Message 18 FATAL - Message 19 ERROR - Message 20 WARN - Message 21 INFO - Message 22 DEBUG - Message 23 java.lang.Exception: Just testing. at org.apache.log4j.MinimumTestCase.common(MinimumTestCase.java:XXX) at org.apache.log4j.MinimumTestCase.simple(MinimumTestCase.java:XXX) at java.lang.reflect.Method.invoke(Native Method) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:XXX) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:XXX) INFO - Messages should bear numbers 0 through 23. 1.1 jakarta-log4j/tests/witness/ttcc Index: ttcc =================================================================== [main] FATAL ERR - Message 0 [main] ERROR ERR - Message 1 [main] FATAL INF - Message 2 [main] ERROR INF - Message 3 [main] WARN INF - Message 4 [main] INFO INF - Message 5 [main] FATAL INF.UNDEF - Message 6 [main] ERROR INF.UNDEF - Message 7 [main] WARN INF.UNDEF - Message 8 [main] INFO INF.UNDEF - Message 9 [main] FATAL INF.ERR - Message 10 [main] ERROR INF.ERR - Message 11 [main] FATAL INF.ERR.UNDEF - Message 12 [main] ERROR INF.ERR.UNDEF - Message 13 [main] FATAL DEB - Message 14 [main] ERROR DEB - Message 15 [main] WARN DEB - Message 16 [main] INFO DEB - Message 17 [main] DEBUG DEB - Message 18 [main] FATAL UNDEF - Message 19 [main] ERROR UNDEF - Message 20 [main] WARN UNDEF - Message 21 [main] INFO UNDEF - Message 22 [main] DEBUG UNDEF - Message 23 java.lang.Exception: Just testing. at org.apache.log4j.MinimumTestCase.common(MinimumTestCase.java:XXX) at org.apache.log4j.MinimumTestCase.ttcc(MinimumTestCase.java:XXX) at java.lang.reflect.Method.invoke(Native Method) at junit.framework.TestCase.runTest(TestCase.java:XXX) at junit.framework.TestCase.runBare(TestCase.java:XXX) at junit.framework.TestResult$1.protect(TestResult.java:XXX) at junit.framework.TestResult.runProtected(TestResult.java:XXX) at junit.framework.TestResult.run(TestResult.java:XXX) at junit.framework.TestCase.run(TestCase.java:XXX) at junit.framework.TestSuite.run(TestSuite.java:XXX) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:XXX) at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:XXX) [main] INFO INF - Messages should bear numbers 0 through 23.
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>