Author: sebb
Date: Wed Sep 21 01:03:09 2011
New Revision: 1173449

URL: http://svn.apache.org/viewvc?rev=1173449&view=rev
Log:
Add optional pause between child samples

Modified:
    
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java

Modified: 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java?rev=1173449&r1=1173448&r2=1173449&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java 
(original)
+++ 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java 
Wed Sep 21 01:03:09 2011
@@ -141,14 +141,30 @@ public class TestSampleResult extends Te
         }
 
         public void testSubResultsTrue() throws Exception {
-            testSubResults(true);
+            testSubResults(true, 0);
         }
 
         public void testSubResultsFalse() throws Exception {
-            testSubResults(false);
+            testSubResults(false, 0);
         }
 
-        private void testSubResults(boolean nanoTime) throws Exception {
+        public void testSubResultsTruePause() throws Exception {
+            testSubResults(true, 100);
+        }
+
+        public void testSubResultsFalsePause() throws Exception {
+            testSubResults(false, 100);
+        }
+
+        // temp test case for exploring settings
+        public void xtestUntilFail() throws Exception {
+            while(true) {
+                testSubResultsTruePause();
+                testSubResultsFalsePause();
+            }
+        }
+
+        private void testSubResults(boolean nanoTime, long pause) throws 
Exception {
             // This test tries to emulate a http sample, with two
             // subsamples, representing images that are downloaded for the
             // page representing the first sample.
@@ -181,7 +197,14 @@ public class TestSampleResult extends Te
             assertEquals("Child1 Sample", child1.getSampleLabel());
             assertEquals(1, child1.getSampleCount());
             assertEquals(0, child1.getSubResults().length);
-            
+
+            long actualPause = 0;
+            if (pause > 0) {
+                long t1 = parent.currentTimeInMillis();
+                Thread.sleep(pause);
+                actualPause = parent.currentTimeInMillis() - t1;
+            }
+
             // Sample with no sub results, simulates an image download 
             SampleResult child2 = new SampleResult(nanoTime);            
             child2.sampleStart();
@@ -210,7 +233,7 @@ public class TestSampleResult extends Te
             
             long overallTime = parent.currentTimeInMillis() - beginTest;
 
-            long sumSamplesTimes = parentElapsed + child1Elapsed + 
child2Elapsed;
+            long sumSamplesTimes = parentElapsed + child1Elapsed + actualPause 
+ child2Elapsed;
             
             /*
              * Parent elapsed total should be no smaller than the sum of the 
individual samples.
@@ -218,7 +241,7 @@ public class TestSampleResult extends Te
              */
             
             long diff = parentElapsedTotal - sumSamplesTimes;
-            long maxDiff = nanoTime ? 1 : 16; // TimeMillis has granularity of 
10-20
+            long maxDiff = nanoTime ? 2 : 16; // TimeMillis has granularity of 
10-20
             if (diff < 0 || diff > maxDiff) {
                 fail("ParentElapsed: " + parentElapsedTotal + " - " + " 
sum(samples): " + sumSamplesTimes
                         + " = " + diff + " not in [0," + maxDiff + "]; 
nanotime=" + nanoTime);
@@ -243,7 +266,6 @@ public class TestSampleResult extends Te
             assertEquals(1d / (parentElapsedTotal / 1000d), 
calculator.getRate(),0.0001d); // Allow for some margin of error
             // Check that the throughput uses the time elapsed for the sub 
results
             assertFalse(1d / (parentElapsed / 1000d) <= calculator.getRate());
-            System.out.print(nanoTime? 'T' : 'F');
         }
 
         // TODO some more invalid sequence tests needed



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@jakarta.apache.org
For additional commands, e-mail: notifications-h...@jakarta.apache.org

Reply via email to