mstover1 2002/08/20 11:45:53
Modified: src/components/org/apache/jmeter/control
InterleaveControl.java
src/components/org/apache/jmeter/control/gui
InterleaveControlGui.java
src/core/org/apache/jmeter/resources messages.properties
messages_de.properties messages_ja.properties
messages_no.properties
Log:
Fixing the behavior of the interleave controller.
Revision Changes Path
1.2 +218 -6
jakarta-jmeter/src/components/org/apache/jmeter/control/InterleaveControl.java
Index: InterleaveControl.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/InterleaveControl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InterleaveControl.java 11 Aug 2002 19:24:40 -0000 1.1
+++ InterleaveControl.java 20 Aug 2002 18:45:52 -0000 1.2
@@ -70,7 +70,11 @@
public class InterleaveControl extends GenericController implements Serializable
{
+ private static final String STYLE = "InterleaveControl.style";
+ public static final int DEFAULT_STYLE = 0;
+ public static final int NEW_STYLE = 1;
private boolean interleave;
+ private boolean doNotIncrement = false;
/****************************************
* Constructor for the InterleaveControl object
@@ -93,22 +97,108 @@
public boolean hasNext()
{
- if(!interleave)
+ boolean retVal;
+ Object controller = getCurrentController();
+ if(controller == null)
{
- return super.hasNext();
+ retVal = hasNextAtEnd();
+ }
+ else if(controller instanceof Controller)
+ {
+ if(((Controller)controller).hasNext())
+ {
+ retVal = true;
+ }
+ else
+ {
+ currentHasNextIsFalse();
+ retVal = hasNext();
+ }
}
else
{
+ retVal = true;
+ }
+ if(controller == null)
+ {
+ reInitialize();
+ }
+ if(interleave)
+ {
interleave = false;
- super.hasNext();
return false;
}
+ return retVal;
+ }
+
+ protected void removeCurrentController()
+ {
+ if(getStyle() == NEW_STYLE)
+ {
+ interleave = true;
+ }
+ super.removeCurrentController();
+ }
+
+ protected void incrementCurrent()
+ {
+ if(getStyle() == NEW_STYLE)
+ {
+ interleave = true;
+ }
+ super.incrementCurrent();
+ }
+
+ public void setStyle(int style)
+ {
+ setProperty(STYLE,new Integer(style));
+ }
+
+ public int getStyle()
+ {
+ return getPropertyAsInt(STYLE);
}
public Sampler next()
{
- interleave = true;
- return super.next();
+ if(getStyle() == DEFAULT_STYLE)
+ {
+ interleave = true;
+ }
+ TestElement controller = getCurrentController();
+ if(controller == null)
+ {
+ nextAtEnd();
+ return next();
+ }
+ if(controller instanceof Sampler)
+ {
+ incrementCurrent();
+ return (Sampler)controller;
+ }
+ else
+ {
+ Controller c = (Controller)controller;
+ if(c.hasNext())
+ {
+ Sampler s = c.next();
+ if(getStyle() == DEFAULT_STYLE)
+ {
+ incrementCurrent();
+ }
+ return s;
+ }
+ else if(c.isDone())
+ {
+ removeCurrentController();
+ return next();
+ }
+ else
+ {
+ incrementCurrent();
+ return next();
+ }
+ }
}
public static class Test extends junit.framework.TestCase
@@ -121,7 +211,8 @@
public void testProcessing() throws Exception
{
GenericController controller = new GenericController();
- GenericController sub_1 = new InterleaveControl();
+ InterleaveControl sub_1 = new InterleaveControl();
+ sub_1.setStyle(DEFAULT_STYLE);
sub_1.addTestElement(makeSampler("one"));
sub_1.addTestElement(makeSampler("two"));
controller.addTestElement(sub_1);
@@ -154,6 +245,127 @@
{
assertEquals(order[counter],sampler.getProperty(TestElement.NAME));
}
+ counter++;
+ }
+ }
+ }
+
+ public void testProcessing2() throws Exception
+ {
+ GenericController controller = new GenericController();
+ InterleaveControl sub_1 = new InterleaveControl();
+ sub_1.setStyle(DEFAULT_STYLE);
+ sub_1.addTestElement(makeSampler("one"));
+ sub_1.addTestElement(makeSampler("two"));
+ controller.addTestElement(sub_1);
+ controller.addTestElement(makeSampler("three"));
+ LoopController sub_2 = new LoopController();
+ sub_2.setLoops(3);
+ GenericController sub_3 = new GenericController();
+ sub_2.addTestElement(makeSampler("four"));
+ sub_3.addTestElement(makeSampler("five"));
+ sub_3.addTestElement(makeSampler("six"));
+ sub_2.addTestElement(sub_3);
+ sub_2.addTestElement(makeSampler("seven"));
+ sub_1.addTestElement(sub_2);
+ String[] order = new
String[]{"one","three","two","three","four","three",
+
"one","three","two","three","five","three","one","three",
+
"two","three","six","three","one","three"};
+ int counter = 0;
+ while (counter < order.length)
+ {
+ while(controller.hasNext())
+ {
+ TestElement sampler = controller.next();
+ assertEquals("failed on "+counter,
+
order[counter],sampler.getProperty(TestElement.NAME));
+ counter++;
+ }
+ }
+ }
+
+ public void testProcessing3() throws Exception
+ {
+ GenericController controller = new GenericController();
+ InterleaveControl sub_1 = new InterleaveControl();
+ sub_1.setStyle(NEW_STYLE);
+ sub_1.addTestElement(makeSampler("one"));
+ sub_1.addTestElement(makeSampler("two"));
+ controller.addTestElement(sub_1);
+ controller.addTestElement(makeSampler("three"));
+ LoopController sub_2 = new LoopController();
+ sub_2.setLoops(3);
+ GenericController sub_3 = new GenericController();
+ sub_2.addTestElement(makeSampler("four"));
+ sub_3.addTestElement(makeSampler("five"));
+ sub_3.addTestElement(makeSampler("six"));
+ sub_2.addTestElement(sub_3);
+ sub_2.addTestElement(makeSampler("seven"));
+ sub_1.addTestElement(sub_2);
+ String[] order = new
String[]{"one","three","two","three","four","five",
+
"six","seven","four","five","six","seven","four","five",
+
"six","seven","three","one","three","two","three"};
+ int counter = 0;
+ while (counter < order.length)
+ {
+ while(controller.hasNext())
+ {
+ TestElement sampler = controller.next();
+ assertEquals("failed on
"+counter,order[counter],sampler.getProperty(TestElement.NAME));
+ counter++;
+ }
+ }
+ }
+
+ public void testProcessing4() throws Exception
+ {
+ GenericController controller = new GenericController();
+ InterleaveControl sub_1 = new InterleaveControl();
+ sub_1.setStyle(DEFAULT_STYLE);
+ controller.addTestElement(sub_1);
+ GenericController sub_2 = new GenericController();
+ sub_2.addTestElement(makeSampler("one"));
+ sub_2.addTestElement(makeSampler("two"));
+ sub_1.addTestElement(sub_2);
+ GenericController sub_3 = new GenericController();
+ sub_3.addTestElement(makeSampler("three"));
+ sub_3.addTestElement(makeSampler("four"));
+ sub_1.addTestElement(sub_3);
+ String[] order = new String[]{"one","three","two","four"};
+ int counter = 0;
+ while (counter < order.length)
+ {
+ while(controller.hasNext())
+ {
+ TestElement sampler = controller.next();
+ assertEquals("failed on
"+counter,order[counter],sampler.getProperty(TestElement.NAME));
+ counter++;
+ }
+ }
+ }
+
+ public void testProcessing5() throws Exception
+ {
+ GenericController controller = new GenericController();
+ InterleaveControl sub_1 = new InterleaveControl();
+ sub_1.setStyle(NEW_STYLE);
+ controller.addTestElement(sub_1);
+ GenericController sub_2 = new GenericController();
+ sub_2.addTestElement(makeSampler("one"));
+ sub_2.addTestElement(makeSampler("two"));
+ sub_1.addTestElement(sub_2);
+ GenericController sub_3 = new GenericController();
+ sub_3.addTestElement(makeSampler("three"));
+ sub_3.addTestElement(makeSampler("four"));
+ sub_1.addTestElement(sub_3);
+ String[] order = new String[]{"one","two","three","four"};
+ int counter = 0;
+ while (counter < order.length)
+ {
+ while(controller.hasNext())
+ {
+ TestElement sampler = controller.next();
+ assertEquals("failed on
"+counter,order[counter],sampler.getProperty(TestElement.NAME));
counter++;
}
}
1.2 +34 -8
jakarta-jmeter/src/components/org/apache/jmeter/control/gui/InterleaveControlGui.java
Index: InterleaveControlGui.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/gui/InterleaveControlGui.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InterleaveControlGui.java 11 Aug 2002 19:24:40 -0000 1.1
+++ InterleaveControlGui.java 20 Aug 2002 18:45:52 -0000 1.2
@@ -53,14 +53,16 @@
* <http://www.apache.org/>.
*/
package org.apache.jmeter.control.gui;
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.border.*;
-import javax.swing.table.*;
-import javax.swing.text.*;
+import java.awt.Font;
+
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+
import org.apache.jmeter.control.InterleaveControl;
-import org.apache.jmeter.gui.*;
+import org.apache.jmeter.gui.NamePanel;
import org.apache.jmeter.gui.util.VerticalLayout;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
@@ -76,6 +78,7 @@
public class InterleaveControlGui extends AbstractControllerGui
{
InterleaveControl model;
+ JCheckBox style;
/****************************************
* !ToDo (Constructor description)
@@ -105,6 +108,19 @@
{
return namePanel.getName();
}
+
+ public void configure(TestElement el)
+ {
+ super.configure(el);
+ if(((InterleaveControl)el).getStyle() ==
InterleaveControl.DEFAULT_STYLE)
+ {
+ style.setSelected(true);
+ }
+ else
+ {
+ style.setSelected(false);
+ }
+ }
/****************************************
* !ToDo (Method description)
@@ -115,6 +131,14 @@
{
InterleaveControl ic = new InterleaveControl();
configureTestElement(ic);
+ if(style.isSelected())
+ {
+ ic.setStyle(ic.DEFAULT_STYLE);
+ }
+ else
+ {
+ ic.setStyle(ic.NEW_STYLE);
+ }
return ic;
}
@@ -151,5 +175,7 @@
mainPanel.add(namePanel);
this.add(mainPanel);
+ style = new
JCheckBox(JMeterUtils.getResString("ignore_subcontrollers"));
+ this.add(style);
}
}
1.7 +2 -1
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties
Index: messages.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages.properties,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- messages.properties 19 Aug 2002 22:33:14 -0000 1.6
+++ messages.properties 20 Aug 2002 18:45:52 -0000 1.7
@@ -287,4 +287,5 @@
delete_user=Delete User
column_delete_disallowed=Deleting this column is not permitted
enable=Activate
-disable=Disable
\ No newline at end of file
+disable=Disable
+ignore_subcontrollers=Ignore sub-controller blocks
\ No newline at end of file
1.8 +2 -1
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties
Index: messages_de.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_de.properties,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- messages_de.properties 19 Aug 2002 22:33:14 -0000 1.7
+++ messages_de.properties 20 Aug 2002 18:45:53 -0000 1.8
@@ -282,4 +282,5 @@
delete_user=Delete User
column_delete_disallowed=Deleting this column is not permitted
enable=Activate
-disable=Disable
\ No newline at end of file
+disable=Disable
+ignore_subcontrollers=Ignore sub-controller blocks
\ No newline at end of file
1.7 +2 -1
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties
Index: messages_ja.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_ja.properties,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- messages_ja.properties 19 Aug 2002 22:33:14 -0000 1.6
+++ messages_ja.properties 20 Aug 2002 18:45:53 -0000 1.7
@@ -282,4 +282,5 @@
delete_user=Delete User
column_delete_disallowed=Deleting this column is not permitted
enable=Activate
-disable=Disable
\ No newline at end of file
+disable=Disable
+ignore_subcontrollers=Ignore sub-controller blocks
\ No newline at end of file
1.7 +2 -1
jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties
Index: messages_no.properties
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/resources/messages_no.properties,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- messages_no.properties 19 Aug 2002 22:33:14 -0000 1.6
+++ messages_no.properties 20 Aug 2002 18:45:53 -0000 1.7
@@ -274,4 +274,5 @@
delete_user=Delete User
column_delete_disallowed=Deleting this column is not permitted
enable=Activate
-disable=Disable
\ No newline at end of file
+disable=Disable
+ignore_subcontrollers=Ignore sub-controller blocks
\ No newline at end of file
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>