Author: burton
Date: Thu Mar  3 16:14:19 2005
New Revision: 156106

URL: http://svn.apache.org/viewcvs?view=rev&rev=156106
Log:
Fixed a reset bug when viewing benchmark values

Modified:
    
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java
    
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java
    
jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java

Modified: 
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java?view=diff&r1=156105&r2=156106
==============================================================================
--- 
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java
 (original)
+++ 
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/Benchmark.java
 Thu Mar  3 16:14:19 2005
@@ -113,12 +113,23 @@
 
         this.name = name;
 
+        reset();
+        
+    }
+
+    /**
+     * Reset this benchmark.  Used primarily with unit tests.
+     *
+     * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a>
+     */
+    void reset() {
+
         tracker1 = new BenchmarkTracker( INTERVAL_1, this );
         tracker5 = new BenchmarkTracker( INTERVAL_5, this );
         tracker15 = new BenchmarkTracker( INTERVAL_15, this );
-        
-    }
 
+    }
+    
     // **** metadata about this benchmark 
***************************************
 
     /**
@@ -141,7 +152,7 @@
      *
      */
     public BenchmarkTracker getTracker() {
-        return tracker1;
+        return getTracker( INTERVAL_1 );
     }
 
     /**
@@ -153,7 +164,7 @@
      * calling getInterval( 900000 ) (which is 15 minutes in millis).
      *
      * @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a>
-     */
+     ' */
     public BenchmarkTracker getTracker( int interval ) {
 
         if ( interval < 1000 ) {
@@ -164,11 +175,11 @@
         }
 
         if ( interval == INTERVAL_1 ) {
-            return tracker1;
+            return tracker1.resetWhenNecessary();
         } else if ( interval == INTERVAL_5 ) {
-            return tracker5;
+            return tracker5.resetWhenNecessary();
         } else if ( interval == INTERVAL_15 ) {
-            return tracker15;
+            return tracker15.resetWhenNecessary();
         }
         
         return null;

Modified: 
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java?view=diff&r1=156105&r2=156106
==============================================================================
--- 
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java
 (original)
+++ 
jakarta/commons/sandbox/benchmark/trunk/src/java/org/apache/commons/benchmark/BenchmarkTracker.java
 Thu Mar  3 16:14:19 2005
@@ -78,7 +78,7 @@
         this.parent = parent;
     }
 
-    void reset( long now ) {
+    BenchmarkTracker reset( long now ) {
 
         //need to perform a swap and save the current benchmark.
         totalStarted = started;
@@ -89,12 +89,14 @@
         started = 0;
         completed = 0;
 
+        return this;
+
     }
     
     /**
      * Reset stats if necessary.
      */
-    void resetWhenNecessary() {
+    BenchmarkTracker resetWhenNecessary() {
 
         long now = System.currentTimeMillis();
 
@@ -104,6 +106,8 @@
             
         }
 
+        return this;
+        
     }
 
     void start() {

Modified: 
jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java?view=diff&r1=156105&r2=156106
==============================================================================
--- 
jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java
 (original)
+++ 
jakarta/commons/sandbox/benchmark/trunk/src/test/org/apache/commons/benchmark/Test1.java
 Thu Mar  3 16:14:19 2005
@@ -1,5 +1,4 @@
 /*
-/*
  * Copyright 1999,2004 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,12 +26,43 @@
         super(testName);
     }
 
-    public void test1() {
+    //FIXME: test with using really short intervals but with diff values.
+
+    public void testIntervalReset() throws Exception {
+
+        Benchmark.INTERVAL_1 =   1000;
+        Benchmark.INTERVAL_5 =   5000;
+        Benchmark.INTERVAL_15 = 15000;
+
+        Benchmark benchmark = Benchmark.getBenchmark( Test1.class );
+        benchmark = benchmark.child( "main" );
+        
+        benchmark.start();
+        benchmark.complete();
+
+        assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_1 
).getStarted() );
+        assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_1 
).getCompleted() );
+
+        assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_5 
).getStarted() );
+        assertEquals( 1, benchmark.getTracker( Benchmark.INTERVAL_15 
).getCompleted() );
+
+        Thread.sleep( 1000 );
+
+        assertEquals( 0, benchmark.getTracker( Benchmark.INTERVAL_1 
).getStarted() );
+
+        //reset all the trackers
+        benchmark.reset();
+        
+    }
+    
+    public void testBasic() {
 
         Benchmark benchmark = Benchmark.getBenchmark( Test1.class );
         benchmark = benchmark.child( "main" );
 
-        assertEquals( benchmark.getName(), "org.apache.commons.benchmark.main" 
);
+        System.out.println( "name: " + benchmark.getName() );
+        
+        assertEquals( benchmark.getName(), 
"org.apache.commons.benchmark.Test1.main" );
 
         int total = 60;
         



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

Reply via email to