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