This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new 8a56402  [metrics] add Counter::Reset() method
8a56402 is described below

commit 8a564024a9580d89826e5dc12520ea9a816c65f3
Author: Alexey Serbin <[email protected]>
AuthorDate: Wed Jul 1 11:21:34 2020 -0700

    [metrics] add Counter::Reset() method
    
    Added functionality to reset a counter and corresponding unit test.
    
    I'm planning to use this new functionality in a follow-up changelist.
    
    Change-Id: Ia652385a75ebf0bf0ccdbffe183b8b7053c0d2e3
    Reviewed-on: http://gerrit.cloudera.org:8080/16133
    Reviewed-by: Bankim Bhavsar <[email protected]>
    Tested-by: Kudu Jenkins
---
 src/kudu/util/metrics-test.cc | 15 +++++++++++++++
 src/kudu/util/metrics.h       |  5 +++++
 2 files changed, 20 insertions(+)

diff --git a/src/kudu/util/metrics-test.cc b/src/kudu/util/metrics-test.cc
index 5664a4f..e80a2d5 100644
--- a/src/kudu/util/metrics-test.cc
+++ b/src/kudu/util/metrics-test.cc
@@ -116,6 +116,21 @@ TEST_F(MetricsTest, SimpleCounterMergeTest) {
   ASSERT_EQ(14, requests_for_merge->value());
 }
 
+TEST_F(MetricsTest, ResetCounter) {
+  scoped_refptr<Counter> c(new Counter(&METRIC_test_counter));
+  ASSERT_EQ(0, c->value());
+  c->Increment();
+  ASSERT_EQ(1, c->value());
+  c->Reset();
+  ASSERT_EQ(0, c->value());
+  c->IncrementBy(2);
+  ASSERT_EQ(2, c->value());
+  c->IncrementBy(-1);
+  ASSERT_EQ(1, c->value());
+  c->Reset();
+  ASSERT_EQ(0, c->value());
+}
+
 METRIC_DEFINE_gauge_string(test_entity, test_string_gauge, "Test string Gauge",
                            MetricUnit::kState, "Description of string Gauge",
                            kudu::MetricLevel::kInfo);
diff --git a/src/kudu/util/metrics.h b/src/kudu/util/metrics.h
index ab31113..3d1b98a 100644
--- a/src/kudu/util/metrics.h
+++ b/src/kudu/util/metrics.h
@@ -1372,7 +1372,12 @@ class Counter : public Metric {
     IncrementBy(down_cast<Counter *>(other.get())->value());
   }
 
+  virtual void Reset() {
+    value_.Reset();
+  }
+
  private:
+  FRIEND_TEST(MetricsTest, ResetCounter);
   FRIEND_TEST(MetricsTest, SimpleCounterTest);
   FRIEND_TEST(MetricsTest, SimpleCounterMergeTest);
   FRIEND_TEST(MultiThreadedMetricsTest, CounterIncrementTest);

Reply via email to