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

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


The following commit(s) were added to refs/heads/master by this push:
     new 3418a92  [HUDI-1620] Fix Metrics UT (#2894)
3418a92 is described below

commit 3418a92de8a45986e55a29a9498791222f6a6fa6
Author: Raymond Xu <[email protected]>
AuthorDate: Fri Apr 30 11:20:41 2021 -0700

    [HUDI-1620] Fix Metrics UT (#2894)
    
    Make sure shutdown Metrics between unit test cases to ensure isolation
---
 azure-pipelines.yml                                |  6 ++--
 .../hudi/metrics/TestHoodieConsoleMetrics.java     |  8 +++--
 .../apache/hudi/metrics/TestHoodieJmxMetrics.java  | 16 ++++++++--
 .../org/apache/hudi/metrics/TestHoodieMetrics.java | 17 +++++++++--
 .../datadog/TestDatadogMetricsReporter.java        |  7 +++++
 .../metrics/prometheus/TestPrometheusReporter.java | 18 ++++++++++--
 .../prometheus/TestPushGateWayReporter.java        | 28 +++++++++++++++---
 pom.xml                                            | 34 ----------------------
 8 files changed, 83 insertions(+), 51 deletions(-)

diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index e75e1b3..cf2343d 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -56,7 +56,7 @@ stages:
             inputs:
               mavenPomFile: 'pom.xml'
               goals: 'test'
-              options: -Pazp-unit-tests -pl hudi-client/hudi-spark-client
+              options: -Punit-tests -pl hudi-client/hudi-spark-client
               publishJUnitResults: false
               testResultsFiles: '**/surefire-reports/TEST-*.xml'
               testRunTitle: 'unit tests spark client'
@@ -88,7 +88,7 @@ stages:
             inputs:
               mavenPomFile: 'pom.xml'
               goals: 'test'
-              options: -Pazp-unit-tests -pl hudi-utilities
+              options: -Punit-tests -pl hudi-utilities
               publishJUnitResults: false
               testResultsFiles: '**/surefire-reports/TEST-*.xml'
               testRunTitle: 'unit tests utilities'
@@ -120,7 +120,7 @@ stages:
             inputs:
               mavenPomFile: 'pom.xml'
               goals: 'test'
-              options: -Pazp-unit-tests -pl 
!hudi-utilities,!hudi-client/hudi-spark-client
+              options: -Punit-tests -pl 
!hudi-utilities,!hudi-client/hudi-spark-client
               publishJUnitResults: false
               testResultsFiles: '**/surefire-reports/TEST-*.xml'
               testRunTitle: 'unit tests other modules'
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieConsoleMetrics.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieConsoleMetrics.java
index 7424d0b..8c83562 100644
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieConsoleMetrics.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieConsoleMetrics.java
@@ -22,15 +22,19 @@ import org.apache.hudi.config.HoodieWriteConfig;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.apache.hudi.metrics.Metrics.registerGauge;
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(MockitoExtension.class)
 public class TestHoodieConsoleMetrics {
 
-  HoodieWriteConfig config = mock(HoodieWriteConfig.class);
+  @Mock
+  HoodieWriteConfig config;
 
   @BeforeEach
   public void start() {
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieJmxMetrics.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieJmxMetrics.java
index 7b63a30..8254bf6 100644
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieJmxMetrics.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieJmxMetrics.java
@@ -21,23 +21,34 @@ package org.apache.hudi.metrics;
 import org.apache.hudi.common.testutils.NetworkTestUtils;
 import org.apache.hudi.config.HoodieWriteConfig;
 
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.apache.hudi.metrics.Metrics.registerGauge;
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 /**
  * Test for the Jmx metrics report.
  */
+@ExtendWith(MockitoExtension.class)
 public class TestHoodieJmxMetrics {
 
-  HoodieWriteConfig config = mock(HoodieWriteConfig.class);
+  @Mock
+  HoodieWriteConfig config;
+
+  @AfterEach
+  void shutdownMetrics() {
+    Metrics.shutdown();
+  }
 
   @Test
   public void testRegisterGauge() {
     when(config.isMetricsOn()).thenReturn(true);
+    when(config.getTableName()).thenReturn("foo");
     when(config.getMetricsReporterType()).thenReturn(MetricsReporterType.JMX);
     when(config.getJmxHost()).thenReturn("localhost");
     
when(config.getJmxPort()).thenReturn(String.valueOf(NetworkTestUtils.nextFreePort()));
@@ -50,6 +61,7 @@ public class TestHoodieJmxMetrics {
   @Test
   public void testRegisterGaugeByRangerPort() {
     when(config.isMetricsOn()).thenReturn(true);
+    when(config.getTableName()).thenReturn("foo");
     when(config.getMetricsReporterType()).thenReturn(MetricsReporterType.JMX);
     when(config.getJmxHost()).thenReturn("localhost");
     
when(config.getJmxPort()).thenReturn(String.valueOf(NetworkTestUtils.nextFreePort()));
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieMetrics.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieMetrics.java
index e669a67..a734b8c 100755
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieMetrics.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/TestHoodieMetrics.java
@@ -24,8 +24,12 @@ import org.apache.hudi.common.util.collection.Pair;
 import org.apache.hudi.config.HoodieWriteConfig;
 
 import com.codahale.metrics.Timer;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.util.Random;
 import java.util.stream.Stream;
@@ -36,18 +40,25 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(MockitoExtension.class)
 public class TestHoodieMetrics {
 
-  private HoodieMetrics metrics;
+  @Mock
+  HoodieWriteConfig config;
+  HoodieMetrics metrics;
 
   @BeforeEach
-  public void start() {
-    HoodieWriteConfig config = mock(HoodieWriteConfig.class);
+  void setUp() {
     when(config.isMetricsOn()).thenReturn(true);
     
when(config.getMetricsReporterType()).thenReturn(MetricsReporterType.INMEMORY);
     metrics = new HoodieMetrics(config, "raw_table");
   }
 
+  @AfterEach
+  void shutdownMetrics() {
+    Metrics.shutdown();
+  }
+
   @Test
   public void testRegisterGauge() {
     registerGauge("metric1", 123L);
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogMetricsReporter.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogMetricsReporter.java
index 3cab8f6..2514a48 100644
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogMetricsReporter.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogMetricsReporter.java
@@ -19,9 +19,11 @@
 package org.apache.hudi.metrics.datadog;
 
 import org.apache.hudi.config.HoodieWriteConfig;
+import org.apache.hudi.metrics.Metrics;
 import org.apache.hudi.metrics.datadog.DatadogHttpClient.ApiSite;
 
 import com.codahale.metrics.MetricRegistry;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
@@ -43,6 +45,11 @@ public class TestDatadogMetricsReporter {
   @Mock
   MetricRegistry registry;
 
+  @AfterEach
+  void shutdownMetrics() {
+    Metrics.shutdown();
+  }
+
   @Test
   public void instantiationShouldFailWhenNoApiKey() {
     when(config.getDatadogApiKey()).thenReturn("");
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPrometheusReporter.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPrometheusReporter.java
index 6bbd49d..9010fe5 100644
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPrometheusReporter.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPrometheusReporter.java
@@ -20,16 +20,28 @@ package org.apache.hudi.metrics.prometheus;
 
 import org.apache.hudi.config.HoodieWriteConfig;
 import org.apache.hudi.metrics.HoodieMetrics;
+import org.apache.hudi.metrics.Metrics;
 import org.apache.hudi.metrics.MetricsReporterType;
+
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(MockitoExtension.class)
 public class TestPrometheusReporter {
 
-  HoodieWriteConfig config = mock(HoodieWriteConfig.class);
+  @Mock
+  HoodieWriteConfig config;
+
+  @AfterEach
+  void shutdownMetrics() {
+    Metrics.shutdown();
+  }
 
   @Test
   public void testRegisterGauge() {
@@ -40,4 +52,4 @@ public class TestPrometheusReporter {
       new HoodieMetrics(config, "raw_table");
     });
   }
-}
\ No newline at end of file
+}
diff --git 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPushGateWayReporter.java
 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPushGateWayReporter.java
index 2b94226..eb4d09c 100644
--- 
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPushGateWayReporter.java
+++ 
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/prometheus/TestPushGateWayReporter.java
@@ -22,16 +22,28 @@ import org.apache.hudi.config.HoodieWriteConfig;
 import org.apache.hudi.metrics.HoodieMetrics;
 import org.apache.hudi.metrics.Metrics;
 import org.apache.hudi.metrics.MetricsReporterType;
+
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.apache.hudi.metrics.Metrics.registerGauge;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(MockitoExtension.class)
 public class TestPushGateWayReporter {
 
-  HoodieWriteConfig config = mock(HoodieWriteConfig.class);
+  @Mock
+  HoodieWriteConfig config;
+
+  @AfterEach
+  void shutdownMetrics() {
+    Metrics.shutdown();
+  }
 
   @Test
   public void testRegisterGauge() {
@@ -39,9 +51,17 @@ public class TestPushGateWayReporter {
     
when(config.getMetricsReporterType()).thenReturn(MetricsReporterType.PROMETHEUS_PUSHGATEWAY);
     when(config.getPushGatewayHost()).thenReturn("localhost");
     when(config.getPushGatewayPort()).thenReturn(9091);
-    new HoodieMetrics(config, "raw_table");
+    when(config.getPushGatewayReportPeriodSeconds()).thenReturn(30);
+    when(config.getPushGatewayDeleteOnShutdown()).thenReturn(true);
+    when(config.getPushGatewayJobName()).thenReturn("foo");
+    when(config.getPushGatewayRandomJobNameSuffix()).thenReturn(false);
+
+    assertDoesNotThrow(() -> {
+      new HoodieMetrics(config, "raw_table");
+    });
+
     registerGauge("pushGateWayReporter_metric", 123L);
     assertEquals("123", Metrics.getInstance().getRegistry().getGauges()
         .get("pushGateWayReporter_metric").getValue().toString());
   }
-}
\ No newline at end of file
+}
diff --git a/pom.xml b/pom.xml
index 7f371dd..8a9a993 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1274,40 +1274,6 @@
       </build>
     </profile>
     <profile>
-      <id>azp-unit-tests</id>
-      <properties>
-        <skipUTs>false</skipUTs>
-        <skipFTs>true</skipFTs>
-        <skipITs>true</skipITs>
-      </properties>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <dependencies>
-              <dependency>
-                <groupId>org.junit.jupiter</groupId>
-                <artifactId>junit-jupiter-engine</artifactId>
-                <version>${junit.jupiter.version}</version>
-              </dependency>
-            </dependencies>
-            <configuration combine.self="append">
-              <skip>${skipUTs}</skip>
-              
<forkedProcessExitTimeoutInSeconds>120</forkedProcessExitTimeoutInSeconds>
-              <excludedGroups>functional</excludedGroups>
-              <excludes>
-                <exclude>**/*FunctionalTestSuite.java</exclude>
-                <exclude>**/IT*.java</exclude>
-                <exclude>**/testsuite/**/Test*.java</exclude>
-                <exclude>**/TestPushGateWayReporter.java</exclude>
-              </excludes>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
       <id>javadocs</id>
       <build>
         <plugins>

Reply via email to