
Author: ceki Date: Thu Nov 6 19:15:37 2008 New Revision: 1951 Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/Scenario.java Removed: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/TestScenario.java Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/ScenarioBasedLoggerContextTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/ScenarioMaker.java Log: Renaming TestScenario as Scenario because it is not a test. Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/ScenarioBasedLoggerContextTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/ScenarioBasedLoggerContextTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/ScenarioBasedLoggerContextTest.java Thu Nov 6 19:15:37 2008 @@ -24,7 +24,7 @@ import ch.qos.logback.classic.control.ScenarioAction; import ch.qos.logback.classic.control.ScenarioMaker; import ch.qos.logback.classic.control.SetLevel; -import ch.qos.logback.classic.control.TestScenario; +import ch.qos.logback.classic.control.Scenario; public class ScenarioBasedLoggerContextTest { @@ -55,7 +55,7 @@ private void doScenarioedTest(int len) { LoggerContext lc = new LoggerContext(); ControlLoggerContext controlContext = new ControlLoggerContext(); - TestScenario s = ScenarioMaker.makeRealisticCreationScenario(len); + Scenario s = ScenarioMaker.makeRealisticCreationScenario(len); List actionList = s.getActionList(); int size = actionList.size(); for (int i = 0; i < size; i++) { Added: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/Scenario.java ============================================================================== --- (empty file) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/Scenario.java Thu Nov 6 19:15:37 2008 @@ -0,0 +1,35 @@ +/** + * LOGBack: the reliable, fast and flexible logging library for Java. + * + * Copyright (C) 1999-2005, QOS.ch, LOGBack.com + * + * 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.control; + +import java.util.ArrayList; +import java.util.List; +import java.util.Vector; + +public class Scenario { + + private List<ScenarioAction> actionList = new Vector<ScenarioAction>(); + + public void add(ScenarioAction action) { + actionList.add(action); + } + + public List<ScenarioAction> getActionList() { + return new ArrayList<ScenarioAction>(actionList); + } + + public int size() { + return actionList.size(); + } + + public ScenarioAction get(int i) { + return (ScenarioAction) actionList.get(i); + } +} Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/ScenarioMaker.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/ScenarioMaker.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/control/ScenarioMaker.java Thu Nov 6 19:15:37 2008 @@ -21,8 +21,9 @@ // the frequency of a set levelInt event for every create logger event private final static int CREATE_LOGGER_TO_SET_LEVEL_FREQUENCY = 5; private final static int SECOND_SET_LEVEL_FREQUENCY = 3; - - + + private static long count = 0; + /** * Makes a scenario with len logger creations. Logger names are generated * independently such that the overwhelming majority of logger names will be @@ -32,19 +33,19 @@ * @param len * @return */ - static public TestScenario makeTypeAScenario(int len) { - TestScenario scenario = new TestScenario(); + static public Scenario makeTypeAScenario(int len) { + Scenario scenario = new Scenario(); ; for (int i = 0; i < len; i++) { - String loggerName = ScenarioRandomUtil.randomLoggerName(AVERAGE_LOGGER_DEPTH, - LOGGER_DEPT_DEV); + String loggerName = ScenarioRandomUtil.randomLoggerName( + AVERAGE_LOGGER_DEPTH, LOGGER_DEPT_DEV); scenario.add(new CreateLogger(loggerName)); } return scenario; } - static public TestScenario makeRealisticCreationScenario(int len) { - TestScenario scenario = new TestScenario(); + static public Scenario makeRealisticCreationScenario(int len) { + Scenario scenario = new Scenario(); LinkedList<String> queue = new LinkedList<String>(); int loggerCreationCount = 0; @@ -52,9 +53,14 @@ queue.add(""); while (loggerCreationCount < len) { + if ((count % 100) == 0) { + System.out.println("count=" + count); + } + String loggerName = (String) queue.removeFirst(); - int randomChildrenCount = ScenarioRandomUtil.randomChildrenCount(loggerName); - + int randomChildrenCount = ScenarioRandomUtil + .randomChildrenCount(loggerName); + if (randomChildrenCount == 0) { scenario.add(new CreateLogger(loggerName)); addSetLevelSubScenario(scenario, loggerName); @@ -64,9 +70,11 @@ String childName; if (loggerName.equals("")) { childName = ScenarioRandomUtil.randomId(); + count += childName.length(); } else { childName = loggerName + ClassicGlobal.LOGGER_SEPARATOR + ScenarioRandomUtil.randomId(); + count += childName.length(); } queue.add(childName); addSetLevelSubScenario(scenario, loggerName); @@ -76,17 +84,16 @@ } return scenario; } - - static void addSetLevelSubScenario(TestScenario scenario, String loggerName) { - if(ScenarioRandomUtil.oneInFreq(CREATE_LOGGER_TO_SET_LEVEL_FREQUENCY)) { + + static void addSetLevelSubScenario(Scenario scenario, String loggerName) { + if (ScenarioRandomUtil.oneInFreq(CREATE_LOGGER_TO_SET_LEVEL_FREQUENCY)) { Level l = ScenarioRandomUtil.randomLevel(); scenario.add(new SetLevel(l, loggerName)); - if(ScenarioRandomUtil.oneInFreq(SECOND_SET_LEVEL_FREQUENCY)) { + if (ScenarioRandomUtil.oneInFreq(SECOND_SET_LEVEL_FREQUENCY)) { l = ScenarioRandomUtil.randomLevel(); scenario.add(new SetLevel(l, loggerName)); } } } - - + } \ No newline at end of file