You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2005/06/17 02:00:44 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/control RunTime.java

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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org