sebb        2005/06/16 17:00:44

  Modified:    src/core/org/apache/jmeter/control RunTime.java
  Log:
  Bug 35059 - Runtime Controller stopped working
  
  Revision  Changes    Path
  1.4       +60 -5     
jakarta-jmeter/src/core/org/apache/jmeter/control/RunTime.java
  
  Index: RunTime.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/RunTime.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RunTime.java      18 Mar 2005 15:26:58 -0000      1.3
  +++ RunTime.java      17 Jun 2005 00:00:44 -0000      1.4
  @@ -20,18 +20,17 @@
   
   import java.io.Serializable;
   
  +import org.apache.jmeter.junit.JMeterTestCase;
  +import org.apache.jmeter.junit.stubs.TestSampler;
   import org.apache.jmeter.samplers.Sampler;
   import org.apache.jmeter.testelement.property.LongProperty;
   import org.apache.jmeter.testelement.property.StringProperty;
  -//NOTUSED import org.apache.jorphan.logging.LoggingManager;
  -//NOTUSED import org.apache.log.Logger;
   
   /**
    * @version   $Revision$
    */
   public class RunTime extends GenericController implements Serializable
   {
  -    //NOTUSED private static Logger log = LoggingManager.getLoggerForClass();
   
       private final static String SECONDS = "RunTime.seconds";
       private volatile long startTime = 0;
  @@ -92,6 +91,11 @@
        public Sampler next()
        {
                if (startTime == 0) startTime=System.currentTimeMillis();
  +        if (endOfLoop()){
  +            reInitialize();// ??
  +            resetLoopCount();
  +            return null;
  +        }
                return super.next();
        }
       /* (non-Javadoc)
  @@ -134,4 +138,55 @@
                incrementLoopCount();
           recoverRunningVersion();
        }
  +//////////////////////////////Start of Test Code ///////////////////////////
  +
  +      /**
  +       * JUnit test
  +       */
  +      public static class Test extends JMeterTestCase {
  +            public Test(String name) {
  +                  super(name);
  +            }
  +
  +            public void testProcessing() throws Exception {
  +
  +                  RunTime controller = new RunTime();
  +                  controller.setRuntime(10);
  +                  TestSampler samp1 = new TestSampler("Sample 1",500);
  +                  TestSampler samp2 = new TestSampler("Sample 2",500);
  +
  +                  LoopController sub1 = new LoopController();
  +                  sub1.setLoops(2);
  +                  sub1.setContinueForever(false);
  +                  sub1.addTestElement(samp1);
  +
  +                  LoopController sub2 = new LoopController();
  +                  sub2.setLoops(40);
  +                  sub2.setContinueForever(false);
  +                  sub2.addTestElement(samp2);
  +                  controller.addTestElement(sub1);
  +                  controller.addTestElement(sub2);
  +                  controller.setRunningVersion(true);
  +                  sub1.setRunningVersion(true);
  +                  sub2.setRunningVersion(true);
  +                  controller.initialize();
  +                  Sampler sampler = null;
  +                  int loops = 0;
  +                  long now = System.currentTimeMillis();
  +                  while ((sampler = controller.next()) != null) {
  +                      loops++;
  +                      sampler.sample(null);
  +                  }
  +                  long elapsed = System.currentTimeMillis() - now;
  +                  assertTrue("Should be at least 20 loops", loops >= 20);
  +                  assertTrue("Should be fewer than 30 loops",loops < 30);
  +                  assertTrue("Should take at least 10 seconds",elapsed >= 
10000);
  +                  assertTrue("Should take less than 12 seconds",elapsed <= 
12000);
  +                  assertEquals("Sampler 1 should run 2 
times",2,samp1.getSamples());
  +                  assertTrue("Sampler 2 should run >= 18 
times",samp2.getSamples()>=18);                  
  +            }
  +      }
  +
  +
  +
   }
  \ No newline at end of file
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to