
Author: ceki Date: Fri Oct 27 06:23:34 2006 New Revision: 797 Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/PackageTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/PackageTest.java Modified: logback/trunk/logback-classic/mdcfilter.xml logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java Log: - improvements to tests Modified: logback/trunk/logback-classic/mdcfilter.xml ============================================================================== --- logback/trunk/logback-classic/mdcfilter.xml (original) +++ logback/trunk/logback-classic/mdcfilter.xml Fri Oct 27 06:23:34 2006 @@ -1,11 +1,12 @@ <configuration> <appender name="STDOUT" - class="ch.qos.logback.core.ConsoleAppender"> + class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <param name="Pattern" value="%-4relative [%thread] %-5level %X{testKey} - %msg%n" /> </layout> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <Name>myFilter</Name> <OnMatch>DENY</OnMatch> @@ -13,11 +14,9 @@ <Name>mdcEvaluator</Name> <Expression>mdc!=null && "val".equals(mdc.get("key"))</Expression> </Evaluator> - </filter> </appender> - <root> <level value="debug" /> <appender-ref ref="STDOUT" /> Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/AllTest.java Fri Oct 27 06:23:34 2006 @@ -21,9 +21,13 @@ suite.addTest(ch.qos.logback.classic.PackageTest.suite()); suite.addTest(ch.qos.logback.classic.control.PackageTest.suite()); suite.addTest(ch.qos.logback.classic.joran.PackageTest.suite()); + suite.addTest(ch.qos.logback.classic.boolex.PackageTest.suite()); + + suite.addTest(ch.qos.logback.classic.html.PackageTest.suite()); suite.addTest(ch.qos.logback.classic.net.PackageTest.suite()); suite.addTest(ch.qos.logback.classic.pattern.PackageTest.suite()); - + suite.addTest(ch.qos.logback.classic.db.PackageTest.suite()); + return suite; } } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java Fri Oct 27 06:23:34 2006 @@ -4,16 +4,15 @@ import org.slf4j.MarkerFactory; -import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.boolex.JaninoEventEvaluator; import ch.qos.logback.classic.pattern.ConverterTest; import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.core.boolex.EvaluationException; +import ch.qos.logback.core.boolex.JaninoEventEvaluatorBase; import ch.qos.logback.core.boolex.Matcher; - public class JaninoEventEvaluatorTest extends TestCase { LoggerContext loggerContext = new LoggerContext(); @@ -31,8 +30,9 @@ } LoggingEvent makeLoggingEvent(Exception ex) { - LoggingEvent e = new LoggingEvent(ch.qos.logback.core.pattern.FormattingConverter.class - .getName(), logger, Level.INFO, "Some message", ex, null); + LoggingEvent e = new LoggingEvent( + ch.qos.logback.core.pattern.FormattingConverter.class.getName(), + logger, Level.INFO, "Some message", ex, null); return e; } @@ -103,15 +103,16 @@ try { jee.evaluate(event); fail("We should not reach this point"); - } catch(EvaluationException ee) { - + } catch (EvaluationException ee) { + } } - + public void testComplex() throws Exception { JaninoEventEvaluator jee = new JaninoEventEvaluator(); - jee.setExpression("level >= INFO && x.matches(message) && marker.contains(\"BLUE\")"); + jee + .setExpression("level >= INFO && x.matches(message) && marker.contains(\"BLUE\")"); jee.setContext(loggerContext); jee.addMatcher(matcherX); jee.start(); @@ -121,7 +122,54 @@ assertTrue(jee.evaluate(event)); } - static final long LEN = 100 * 1000; + /** + * check that evaluator with bogis exp does not start + * + * @throws Exception + */ + public void testBogusExp1() { + + JaninoEventEvaluator jee = new JaninoEventEvaluator(); + jee.setExpression("mzzzz.get(\"key\").equals(null)"); + jee.setContext(loggerContext); + jee.setName("bogus"); + jee.start(); + + assertFalse(jee.isStarted()); + + // StatusPrinter.print(loggerContext); + // LoggingEvent event = makeLoggingEvent(null); + // event.setMarker(MarkerFactory.getMarker("BLUE")); + // + // jee.evaluate(event); + } + + // check that eval stops after errors + public void testBogusExp2() { + + JaninoEventEvaluator jee = new JaninoEventEvaluator(); + jee.setExpression("mdc.get(\"key\").equals(null)"); + jee.setContext(loggerContext); + jee.setName("bogus"); + jee.start(); + + assertTrue(jee.isStarted()); + + LoggingEvent event = makeLoggingEvent(null); + + for (int i = 0; i < JaninoEventEvaluatorBase.ERROR_THRESHOLD; i++) { + try { + jee.evaluate(event); + fail("should throw an exception"); + } catch (EvaluationException e) { + } + } + // after a few attempts the evaluator should stop + assertFalse(jee.isStarted()); + + } + + static final long LEN = 10 * 1000; // with 6 parameters 400 nanos // with 7 parameters 460 nanos (all levels + selected fields from @@ -130,7 +178,6 @@ void loop(JaninoEventEvaluator jee, String msg) throws Exception { LoggingEvent event = makeLoggingEvent(null); final long start = System.nanoTime(); - final long LEN = 500 * 1000; for (int i = 0; i < LEN; i++) { jee.evaluate(event); } @@ -156,5 +203,5 @@ loop(jee, "x.matches(message): "); } - + } Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/PackageTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/PackageTest.java Fri Oct 27 06:23:34 2006 @@ -0,0 +1,21 @@ +/** + * 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.classic.boolex; + +import junit.framework.*; + +public class PackageTest extends TestCase { + + public static Test suite() { + TestSuite suite = new TestSuite(); + suite.addTestSuite(JaninoEventEvaluatorTest.class); + return suite; + } +} \ No newline at end of file Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/db/PackageTest.java Fri Oct 27 06:23:34 2006 @@ -0,0 +1,21 @@ +/** + * 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.classic.db; + +import junit.framework.*; + +public class PackageTest extends TestCase { + + public static Test suite() { + TestSuite suite = new TestSuite(); + suite.addTestSuite(DBAppenderTest.class); + return suite; + } +} \ No newline at end of file Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/PackageTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/PackageTest.java Fri Oct 27 06:23:34 2006 @@ -0,0 +1,21 @@ +/** + * 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.classic.html; + +import junit.framework.*; + +public class PackageTest extends TestCase { + + public static Test suite() { + TestSuite suite = new TestSuite(); + suite.addTestSuite(HTMLLayoutTest.class); + return suite; + } +} \ No newline at end of file