You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2016/12/08 19:51:45 UTC

lucene-solr:feature/metrics: SOLR-4735 Test also core rename. Fix expectations when registries are reused across tests in the same JVM.

Repository: lucene-solr
Updated Branches:
  refs/heads/feature/metrics cff7097f4 -> ab52041c9


SOLR-4735 Test also core rename. Fix expectations when registries are reused across tests in
the same JVM.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/ab52041c
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/ab52041c
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/ab52041c

Branch: refs/heads/feature/metrics
Commit: ab52041c9bfea8285446b79f39ddfbf02eebc845
Parents: cff7097
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Thu Dec 8 20:50:50 2016 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Thu Dec 8 20:50:50 2016 +0100

----------------------------------------------------------------------
 .../metrics/SolrMetricsIntegrationTest.java     | 35 +++++++++++---------
 1 file changed, 19 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ab52041c/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
index 91789ae..228c30e 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
@@ -19,12 +19,9 @@ package org.apache.solr.metrics;
 
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.util.Collections;
-import java.util.HashMap;
 import java.util.Map;
 import java.util.Random;
 
-import com.codahale.metrics.Metric;
 import com.codahale.metrics.Timer;
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.util.TestUtil;
@@ -43,6 +40,7 @@ import org.junit.Test;
 
 public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
   private static final int MAX_ITERATIONS = 20;
+  private static final String CORE_NAME = "metricsIntegration";
   private static final String METRIC_NAME = "requestTimes";
   private static final String HANDLER_NAME = "standard";
   private static final String[] REPORTER_NAMES = {"reporter1", "reporter2"};
@@ -50,7 +48,8 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
   private static final String SPECIFIC = "specific";
   private static final String MULTIGROUP = "multigroup";
   private static final String MULTIREGISTRY = "multiregistry";
-  private static final String[] ALL_REPORTERS = {REPORTER_NAMES[0], REPORTER_NAMES[1], UNIVERSAL, SPECIFIC, MULTIGROUP, MULTIREGISTRY};
+  private static final String[] INITIAL_REPORTERS = {REPORTER_NAMES[0], REPORTER_NAMES[1], UNIVERSAL, SPECIFIC, MULTIGROUP, MULTIREGISTRY};
+  private static final String[] RENAMED_REPORTERS = {REPORTER_NAMES[0], REPORTER_NAMES[1], UNIVERSAL, MULTIGROUP};
   private static final SolrInfoMBean.Category HANDLER_CATEGORY = SolrInfoMBean.Category.QUERYHANDLER;
 
   private CoreContainer cc;
@@ -66,6 +65,9 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
     cc = createCoreContainer(cfg,
         new TestHarness.TestCoresLocator(DEFAULT_TEST_CORENAME, initCoreDataDir.getAbsolutePath(), "solrconfig.xml", "schema.xml"));
     h.coreName = DEFAULT_TEST_CORENAME;
+    // test rename operation
+    cc.rename(DEFAULT_TEST_CORENAME, CORE_NAME);
+    h.coreName = CORE_NAME;
     cfg = cc.getConfig();
     PluginInfo[] plugins = cfg.getMetricReporterPlugins();
     assertNotNull(plugins);
@@ -91,7 +93,7 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
 
     deleteCore();
 
-    for (String reporterName : ALL_REPORTERS) {
+    for (String reporterName : RENAMED_REPORTERS) {
       SolrMetricReporter reporter = reporters.get(reporterName);
       MockMetricReporter mockReporter = (MockMetricReporter) reporter;
       assertTrue("Reporter " + reporterName + " was not closed: " + mockReporter, mockReporter.didClose);
@@ -102,17 +104,25 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
   public void testConfigureReporter() throws Exception {
     Random random = random();
 
+    String metricName = SolrMetricManager.mkName(METRIC_NAME, HANDLER_CATEGORY.toString(), HANDLER_NAME);
+    SolrCoreMetricManager metricManager = h.getCore().getMetricManager();
+    Timer timer = (Timer) SolrMetricManager.timer(metricManager.getRegistryName(), metricName);
+
+    long initialCount = timer.getCount();
+
     int iterations = TestUtil.nextInt(random, 0, MAX_ITERATIONS);
     for (int i = 0; i < iterations; ++i) {
       h.query(req("*"));
     }
 
-    String metricName = SolrMetricManager.mkName(METRIC_NAME, HANDLER_CATEGORY.toString(), HANDLER_NAME);
-    SolrCoreMetricManager metricManager = h.getCore().getMetricManager();
+    long finalCount = timer.getCount();
+    assertEquals("metric counter incorrect", iterations, finalCount - initialCount);
     Map<String, SolrMetricReporter> reporters = SolrMetricManager.getReporters(metricManager.getRegistryName());
-    assertEquals(ALL_REPORTERS.length, reporters.size());
+    assertEquals(RENAMED_REPORTERS.length, reporters.size());
 
-    for (String reporterName : ALL_REPORTERS) {
+    // SPECIFIC and MULTIREGISTRY were skipped because they were
+    // specific to collection1
+    for (String reporterName : RENAMED_REPORTERS) {
       SolrMetricReporter reporter = reporters.get(reporterName);
       assertNotNull("Reporter " + reporterName + " was not found.", reporter);
       assertTrue(reporter instanceof MockMetricReporter);
@@ -121,13 +131,6 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 {
       assertTrue("Reporter " + reporterName + " was not initialized: " + mockReporter, mockReporter.didInit);
       assertTrue("Reporter " + reporterName + " was not validated: " + mockReporter, mockReporter.didValidate);
       assertFalse("Reporter " + reporterName + " was incorrectly closed: " + mockReporter, mockReporter.didClose);
-
-      Metric metric = mockReporter.reportMetric(metricName);
-      assertNotNull("Metric " + metricName + " was not reported.", metric);
-      assertTrue("Metric " + metricName + " is not an instance of Timer: " + metric, metric instanceof Timer);
-
-      Timer timer = (Timer) metric;
-      assertEquals(iterations, timer.getCount());
     }
   }
 }