svn commit: r960 - in logback/trunk/logback-core: . src/test/java/ch/qos/logback/core/appender src/test/java/ch/qos/logback/core/rolling src/test/java/ch/qos/logback/core/util

Author: ceki Date: Sun Nov 19 17:10:41 2006 New Revision: 960 Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/DelayerUtil.java Modified: logback/trunk/logback-core/pom.xml logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/RenamingTest.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/TeeOutputStream.java Log: - Added TimeBasedRolloverTest to the list of excluded tests in pom.xml as it takes as much as 12 seconds to execute - Modified Modified ConsoleAppenderTest to output nothing on the console. In a related change, TeeOutputStream now admit a null parameter in the constructor - Moved delaying methods into DelayerUtil class - Silent tests are beautiful. Modified: logback/trunk/logback-core/pom.xml ============================================================================== --- logback/trunk/logback-core/pom.xml (original) +++ logback/trunk/logback-core/pom.xml Sun Nov 19 17:10:41 2006 @@ -66,6 +66,7 @@ <exclude>**/AllTest.java</exclude> <exclude>**/PackageTest.java</exclude> <exclude>**/SizeBasedRollingTest.java</exclude> + <exclude>**/TimeBasedRollingTest.java</exclude> </excludes> </configuration> </plugin> Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java Sun Nov 19 17:10:41 2006 @@ -38,7 +38,11 @@ // tee will output bytes on System out but it will also // collect them so that the output can be compared against // some expected output data - tee = new TeeOutputStream(original); + // tee = new TeeOutputStream(original); + + // keep the console quiet + tee = new TeeOutputStream(null); + // redirect System.out to tee System.setOut(new PrintStream(tee)); } Added: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/DelayerUtil.java ============================================================================== --- (empty file) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/DelayerUtil.java Sun Nov 19 17:10:41 2006 @@ -0,0 +1,51 @@ +/** + * Logback: the generic, reliable, fast and flexible logging framework. + * + * Copyright (C) 1999-2006, QOS.ch + * + * This library is free software, you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation. + */ + +package ch.qos.logback.core.rolling; + +import java.util.Calendar; +import java.util.Date; + +public class DelayerUtil { + + // delay until millis in the next second + static void delayUntilNextSecond(int millis) { + long now = System.currentTimeMillis(); + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date(now)); + + cal.set(Calendar.MILLISECOND, millis); + cal.add(Calendar.SECOND, 1); + + long next = cal.getTime().getTime(); + + try { + Thread.sleep(next - now); + } catch (Exception e) { + } + } + + static void delayUntilNextMinute(int seconds) { + long now = System.currentTimeMillis(); + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date(now)); + + cal.set(Calendar.SECOND, seconds); + cal.add(Calendar.MINUTE, 1); + + long next = cal.getTime().getTime(); + + try { + Thread.sleep(next - now); + } catch (Exception e) { + } + } + +} Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/RenamingTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/RenamingTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/RenamingTest.java Sun Nov 19 17:10:41 2006 @@ -20,7 +20,6 @@ import ch.qos.logback.core.Layout; import ch.qos.logback.core.layout.EchoLayout; import ch.qos.logback.core.util.Compare; -import ch.qos.logback.core.util.StatusPrinter; /** * @@ -74,21 +73,21 @@ rfa.setRollingPolicy(tbrp); rfa.start(); - StatusPrinter.print(context.getStatusManager()); + //StatusPrinter.print(context.getStatusManager()); Calendar cal = Calendar.getInstance(); rfa.doAppend("Hello 0"); - Thread.sleep(5000); + DelayerUtil.delayUntilNextSecond(50); rfa.doAppend("Hello 1"); filenames[0] = "src/test/output/test-" + sdf.format(cal.getTime()); filenames[1] = "src/test/output/test.log"; for (int i = 0; i < filenames.length; i++) { - System.out.println("before i=" + i); + //System.out.println("before i=" + i); assertTrue(Compare.compare(filenames[i], "src/test/witness/rolling/renaming." + i)); - System.out.println("post i=" + i); + //System.out.println("post i=" + i); } } } Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingTest.java Sun Nov 19 17:10:41 2006 @@ -13,11 +13,12 @@ import java.io.File; import java.text.SimpleDateFormat; import java.util.Calendar; -import java.util.Date; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; +import ch.qos.logback.core.Context; +import ch.qos.logback.core.ContextBase; import ch.qos.logback.core.layout.EchoLayout; import ch.qos.logback.core.util.Compare; import ch.qos.logback.core.util.Constants; @@ -32,13 +33,13 @@ * with witness files. * * <pre> - * Compression ActiveFileName Stop/Restart - * Test1 NO BLANK NO - * Test2 NO BLANK YES - * Test3 YES BLANK NO - * Test4 NO SET YES - * Test5 NO SET NO - * Test6 YES SET NO + * Compression ActiveFileName Stop/Restart + * Test1 NO BLANK NO + * Test2 NO BLANK YES + * Test3 YES BLANK NO + * Test4 NO SET YES + * Test5 NO SET NO + * Test6 YES SET NO * </pre> * * @author Ceki Gülcü @@ -48,12 +49,14 @@ static final String DATE_PATTERN = "yyyy-MM-dd_HH_mm_ss"; EchoLayout layout = new EchoLayout(); - + Context context = new ContextBase(); + public TimeBasedRollingTest(String name) { super(name); } public void setUp() { + context.setName("test"); // Delete .log files { File target = new File(Constants.TEST_DIR_PREFIX + "output/test4.log"); @@ -81,9 +84,11 @@ public void test1() throws Exception { RollingFileAppender rfa = new RollingFileAppender(); + rfa.setContext(context); rfa.setLayout(layout); TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy(); + tbrp.setContext(context); tbrp.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test1-%d{" + DATE_PATTERN + "}"); tbrp.setParent(rfa); @@ -102,9 +107,9 @@ cal.add(Calendar.SECOND, 1); } - System.out.println("Waiting until next second and 100 millis."); - delayUntilNextSecond(100); - System.out.println("Done waiting."); + //System.out.println("Waiting until next second and 100 millis."); + DelayerUtil.delayUntilNextSecond(100); + //System.out.println("Done waiting."); for (int i = 0; i < 3; i++) { rfa.doAppend("Hello---" + i); @@ -126,11 +131,13 @@ */ public void test2() throws Exception { RollingFileAppender rfa1 = new RollingFileAppender(); + rfa1.setContext(context); rfa1.setLayout(layout); TimeBasedRollingPolicy tbrp1 = new TimeBasedRollingPolicy(); tbrp1.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test2-%d{" + DATE_PATTERN + "}"); + tbrp1.setContext(context); tbrp1.setParent(rfa1); tbrp1.start(); rfa1.setRollingPolicy(tbrp1); @@ -147,9 +154,9 @@ cal.add(Calendar.SECOND, 1); } - System.out.println("Waiting until next second and 100 millis."); - delayUntilNextSecond(100); - System.out.println("Done waiting."); + //System.out.println("Waiting until next second and 100 millis."); + DelayerUtil.delayUntilNextSecond(100); + //System.out.println("Done waiting."); for (int i = 0; i <= 2; i++) { rfa1.doAppend("Hello---" + i); @@ -159,9 +166,11 @@ rfa1.stop(); RollingFileAppender rfa2 = new RollingFileAppender(); + rfa2.setContext(context); rfa2.setLayout(layout); TimeBasedRollingPolicy tbrp2 = new TimeBasedRollingPolicy(); + tbrp2.setContext(context); tbrp2.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test2-%d{" + DATE_PATTERN + "}"); tbrp2.setParent(rfa2); @@ -185,9 +194,11 @@ */ public void test3() throws Exception { RollingFileAppender rfa = new RollingFileAppender(); + rfa.setContext(context); rfa.setLayout(layout); TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy(); + tbrp.setContext(context); tbrp.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test3-%d{" + DATE_PATTERN + "}.gz"); tbrp.setParent(rfa); @@ -208,9 +219,9 @@ filenames[3] = "src/test/output/test3-" + sdf.format(cal.getTime()); - System.out.println("Waiting until next second and 100 millis."); - delayUntilNextSecond(100); - System.out.println("Done waiting."); + //System.out.println("Waiting until next second and 100 millis."); + DelayerUtil.delayUntilNextSecond(100); + //System.out.println("Done waiting."); for (int i = 0; i < 3; i++) { rfa.doAppend("Hello---" + i); @@ -235,10 +246,12 @@ */ public void test4() throws Exception { RollingFileAppender rfa1 = new RollingFileAppender(); + rfa1.setContext(context); rfa1.setLayout(layout); rfa1.setFile(Constants.TEST_DIR_PREFIX + "output/test4.log"); TimeBasedRollingPolicy tbrp1 = new TimeBasedRollingPolicy(); + tbrp1.setContext(context); //tbrp1.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test4.log"); tbrp1.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test4-%d{" + DATE_PATTERN + "}"); @@ -259,9 +272,9 @@ } filenames[2] = Constants.TEST_DIR_PREFIX + "output/test4.log"; - System.out.println("Waiting until next second and 100 millis."); - delayUntilNextSecond(100); - System.out.println("Done waiting."); + //System.out.println("Waiting until next second and 100 millis."); + DelayerUtil.delayUntilNextSecond(50); + //System.out.println("Done waiting."); for (int i = 0; i <= 2; i++) { rfa1.doAppend("Hello---" + i); @@ -271,10 +284,12 @@ rfa1.stop(); RollingFileAppender rfa2 = new RollingFileAppender(); + rfa2.setContext(context); rfa2.setLayout(layout); rfa2.setFile(Constants.TEST_DIR_PREFIX + "output/test4.log"); TimeBasedRollingPolicy tbrp2 = new TimeBasedRollingPolicy(); + tbrp2.setContext(context); tbrp2.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test4-%d{" + DATE_PATTERN + "}"); //tbrp2.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test4.log"); @@ -299,10 +314,12 @@ */ public void test5() throws Exception { RollingFileAppender rfa = new RollingFileAppender(); + rfa.setContext(context); rfa.setLayout(layout); rfa.setFile(Constants.TEST_DIR_PREFIX + "output/test5.log"); TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy(); + tbrp.setContext(context); tbrp.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test5-%d{" + DATE_PATTERN + "}"); //tbrp.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test5.log"); @@ -324,9 +341,9 @@ filenames[2] = Constants.TEST_DIR_PREFIX + "output/test5.log"; - System.out.println("Waiting until next second and 100 millis."); - delayUntilNextSecond(100); - System.out.println("Done waiting."); + //System.out.println("Waiting until next second and 100 millis."); + DelayerUtil.delayUntilNextSecond(100); + //System.out.println("Done waiting."); for (int i = 0; i < 3; i++) { rfa.doAppend("Hello---" + i); @@ -344,10 +361,12 @@ */ public void test6() throws Exception { RollingFileAppender rfa = new RollingFileAppender(); + rfa.setContext(context); rfa.setLayout(layout); rfa.setFile(Constants.TEST_DIR_PREFIX + "output/test6.log"); TimeBasedRollingPolicy tbrp = new TimeBasedRollingPolicy(); + tbrp.setContext(context); tbrp.setFileNamePattern(Constants.TEST_DIR_PREFIX + "output/test6-%d{" + DATE_PATTERN + "}.gz"); //tbrp.setActiveFileName(Constants.TEST_DIR_PREFIX + "output/test6.log"); @@ -369,9 +388,9 @@ filenames[2] = Constants.TEST_DIR_PREFIX + "output/test6.log"; - System.out.println("Waiting until next second and 100 millis."); - delayUntilNextSecond(100); - System.out.println("Done waiting."); + //System.out.println("Waiting until next second and 100 millis."); + DelayerUtil.delayUntilNextSecond(100); + //System.out.println("Done waiting."); for (int i = 0; i < 3; i++) { rfa.doAppend("Hello---" + i); @@ -391,104 +410,6 @@ + "witness/rolling/tbr-test6.2")); } - // public void testWithJoran1() throws Exception { - // JoranConfigurator jc = new JoranConfigurator(); - // jc.doConfigure("./input/rolling/time1.xml", - // LogManager.getLoggerRepository()); - // jc.dumpErrors(); - // - // String datePattern = "yyyy-MM-dd_HH_mm_ss"; - // - // SimpleDateFormat sdf = new SimpleDateFormat(datePattern); - // String[] filenames = new String[4]; - // - // Calendar cal = Calendar.getInstance(); - // - // for (int i = 0; i < 4; i++) { - // filenames[i] = "output/test1-" + sdf.format(cal.getTime()); - // cal.add(Calendar.SECOND, 1); - // } - // - // System.out.println("Waiting until next second and 100 millis."); - // delayUntilNextSecond(100); - // System.out.println("Done waiting."); - // - // for (int i = 0; i < 5; i++) { - // logger.debug("Hello---" + i); - // Thread.sleep(500); - // } - // - // for (int i = 0; i < 4; i++) { - // //System.out.println(i + " expected filename [" + filenames[i] + "]."); - // } - // - // for (int i = 0; i < 4; i++) { - // assertTrue(Compare.compare(filenames[i], "witness/rolling/tbr-test1." + - // i)); - // } - // - // } - // - // public void XXXtestWithJoran10() throws Exception { - // JoranConfigurator jc = new JoranConfigurator(); - // jc.doConfigure("./input/rolling/time2.xml", - // LogManager.getLoggerRepository()); - // jc.dumpErrors(); - // - // String datePattern = "yyyy-MM-dd"; - // - // SimpleDateFormat sdf = new SimpleDateFormat(datePattern); - // String[] filenames = new String[0]; - // - // Calendar cal = Calendar.getInstance(); - // - // filenames[0] = "output/test1-" + sdf.format(cal.getTime()); - // - // for (int i = 0; i < 5; i++) { - // logger.debug("Hello---" + i); - // Thread.sleep(500); - // } - // - // - // for (int i = 0; i < 1; i++) { - // assertTrue(Compare.compare(filenames[i], "witness/rolling/tbr-test10." + - // i)); - // } - // - // } - - void delayUntilNextSecond(int millis) { - long now = System.currentTimeMillis(); - Calendar cal = Calendar.getInstance(); - cal.setTime(new Date(now)); - - cal.set(Calendar.MILLISECOND, millis); - cal.add(Calendar.SECOND, 1); - - long next = cal.getTime().getTime(); - - try { - Thread.sleep(next - now); - } catch (Exception e) { - } - } - - void delayUntilNextMinute(int seconds) { - long now = System.currentTimeMillis(); - Calendar cal = Calendar.getInstance(); - cal.setTime(new Date(now)); - - cal.set(Calendar.SECOND, seconds); - cal.add(Calendar.MINUTE, 1); - - long next = cal.getTime().getTime(); - - try { - Thread.sleep(next - now); - } catch (Exception e) { - } - } - public static Test suite() { TestSuite suite = new TestSuite(); // CompressTest requires external copying Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/TeeOutputStream.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/TeeOutputStream.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/util/TeeOutputStream.java Sun Nov 19 17:10:41 2006 @@ -27,12 +27,15 @@ final ByteArrayOutputStream baos = new ByteArrayOutputStream(); public TeeOutputStream(PrintStream targetPS) { + // allow for null arguments this.targetPS = targetPS; } public void write(int b) throws IOException { baos.write(b); + if(targetPS != null) { targetPS.write(b); + } } public String toString() {
participants (1)
-
noreply.ceki@qos.ch