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

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


The following commit(s) were added to refs/heads/master by this push:
     new c739f423ee Use groups to annotate tests for controller (#8706)
c739f423ee is described below

commit c739f423eebfd9751c26f6aa410e5e8830ecde71
Author: Rong Rong <[email protected]>
AuthorDate: Thu May 19 11:26:40 2022 -0700

    Use groups to annotate tests for controller (#8706)
    
    Benefits of this change
    
    - allows adding new tests (and they will be default added to the stateful 
set to reduce overhead for starting a new cluster)
    - for stateless test, simply add stateless annotation is suffice (we don't 
have a class level annotation but I assume this is something we can ask for 
from testng)
    - no longer need to change the testng_stateful/stateless.xml file whenever 
some test classes are modified.
    - this way we can add more groups by simply adding more group tagging 
instead of needing to partition tests by classes (and create more testng files)
    
    
    Co-authored-by: Rong Rong <[email protected]>
---
 .../controller/ControllerStarterStatelessTest.java |  1 +
 .../pinot/controller/ControllerTestSetup.java      |  8 +--
 .../PinotBrokerRestletResourceStatelessTest.java   |  3 +-
 ...PinotIngestionRestletResourceStatelessTest.java |  1 +
 .../helix/ControllerTenantStatelessTest.java       |  1 +
 .../helix/PinotControllerModeStatelessTest.java    |  1 +
 .../PinotHelixResourceManagerStatelessTest.java    |  1 +
 .../MinionInstancesCleanupTaskStatelessTest.java   |  1 +
 .../core/minion/PinotTaskManagerStatelessTest.java |  1 +
 .../TableRebalancerClusterStatelessTest.java       |  1 +
 .../validation/ValidationManagerStatelessTest.java |  1 +
 pinot-controller/testng-statefull.xml              | 67 ++--------------------
 pinot-controller/testng-stateless.xml              | 22 +++----
 13 files changed, 28 insertions(+), 81 deletions(-)

diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerStarterStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerStarterStatelessTest.java
index 29231584a2..5706e80a7c 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerStarterStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerStarterStatelessTest.java
@@ -34,6 +34,7 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.fail;
 
 
+@Test(groups = "stateless")
 public class ControllerStarterStatelessTest extends ControllerTest {
   private final Map<String, Object> _configOverride = new HashMap<>();
 
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerTestSetup.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerTestSetup.java
index 53f06dc155..43e1f85899 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerTestSetup.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/ControllerTestSetup.java
@@ -18,8 +18,8 @@
  */
 package org.apache.pinot.controller;
 
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.AfterGroups;
+import org.testng.annotations.BeforeGroups;
 
 
 /**
@@ -35,7 +35,7 @@ public class ControllerTestSetup {
    * TestNG will run this method once before all the test cases are run. We 
use this method to initialize
    * common state for all the test cases.
    */
-  @BeforeSuite
+  @BeforeGroups
   public void suiteSetup()
       throws Exception {
     ControllerTestUtils.startSuiteRun();
@@ -45,7 +45,7 @@ public class ControllerTestSetup {
    * TestNG will run this method once after all the test cases have run. We 
use this method to de-initialize
    * common state used by all the test cases.
    */
-  @AfterSuite
+  @AfterGroups
   public void tearDownSuite() {
     ControllerTestUtils.stopSuiteRun();
   }
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java
index f2a2d61af1..5c0242c5c5 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotBrokerRestletResourceStatelessTest.java
@@ -31,6 +31,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
+@Test(groups = "stateless")
 public class PinotBrokerRestletResourceStatelessTest extends ControllerTest {
   private static final String TABLE_NAME_1 = "testTable1";
   private static final String TABLE_NAME_2 = "testTable2";
@@ -45,7 +46,7 @@ public class PinotBrokerRestletResourceStatelessTest extends 
ControllerTest {
         1);
   }
 
-  public void testGetBrokersHelper(String state, int onlineServers, int 
offlineServers)
+  private void testGetBrokersHelper(String state, int onlineServers, int 
offlineServers)
       throws Exception {
     List<String> expectedBrokers = new ArrayList<>();
     if (state == null) {
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotIngestionRestletResourceStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotIngestionRestletResourceStatelessTest.java
index ddee58c1f1..43ac573d75 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotIngestionRestletResourceStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotIngestionRestletResourceStatelessTest.java
@@ -50,6 +50,7 @@ import org.testng.annotations.Test;
  * Tests for the ingestion restlet
  *
  */
+@Test(groups = "stateless")
 public class PinotIngestionRestletResourceStatelessTest extends ControllerTest 
{
   private static final String TABLE_NAME = "testTable";
   private static final String TABLE_NAME_WITH_TYPE = "testTable_OFFLINE";
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTenantStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTenantStatelessTest.java
index 15a695f294..7c57e21a70 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTenantStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/ControllerTenantStatelessTest.java
@@ -30,6 +30,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
+@Test(groups = "stateless")
 public class ControllerTenantStatelessTest extends ControllerTest {
   private static final String BROKER_TAG_PREFIX = "brokerTag_";
   private static final String SERVER_TAG_PREFIX = "serverTag_";
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotControllerModeStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotControllerModeStatelessTest.java
index 84b6448b8b..010f82eb06 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotControllerModeStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/PinotControllerModeStatelessTest.java
@@ -44,6 +44,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
+@Test(groups = "stateless")
 public class PinotControllerModeStatelessTest extends ControllerTest {
   private static final long TIMEOUT_IN_MS = 10_000L;
 
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java
index ac5716ff96..88311095c0 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerStatelessTest.java
@@ -51,6 +51,7 @@ import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
 
+@Test(groups = "stateless")
 public class PinotHelixResourceManagerStatelessTest extends ControllerTest {
   private static final int BASE_SERVER_ADMIN_PORT = 10000;
   private static final int NUM_INSTANCES = 5;
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/MinionInstancesCleanupTaskStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/MinionInstancesCleanupTaskStatelessTest.java
index 7d808e2420..950f7c5492 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/MinionInstancesCleanupTaskStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/MinionInstancesCleanupTaskStatelessTest.java
@@ -29,6 +29,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
+@Test(groups = "stateless")
 public class MinionInstancesCleanupTaskStatelessTest extends ControllerTest {
   @BeforeClass
   public void setup()
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
index 7885a413ac..84a1a5d6a7 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
@@ -48,6 +48,7 @@ import org.testng.annotations.Test;
 import static org.testng.Assert.*;
 
 
+@Test(groups = "stateless")
 public class PinotTaskManagerStatelessTest extends ControllerTest {
   private static final String RAW_TABLE_NAME = "myTable";
   private static final String OFFLINE_TABLE_NAME = 
TableNameBuilder.OFFLINE.tableNameWithType(RAW_TABLE_NAME);
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
index ae7d9fbb19..571bba642c 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancerClusterStatelessTest.java
@@ -56,6 +56,7 @@ import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 
+@Test(groups = "stateless")
 public class TableRebalancerClusterStatelessTest extends ControllerTest {
   private static final String RAW_TABLE_NAME = "testTable";
   private static final String OFFLINE_TABLE_NAME = 
TableNameBuilder.OFFLINE.tableNameWithType(RAW_TABLE_NAME);
diff --git 
a/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java
 
b/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java
index a665cd85e4..20da213757 100644
--- 
a/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java
+++ 
b/pinot-controller/src/test/java/org/apache/pinot/controller/validation/ValidationManagerStatelessTest.java
@@ -36,6 +36,7 @@ import org.testng.annotations.Test;
 /**
  * Tests for the ValidationManagers.
  */
+@Test(groups = "stateless")
 public class ValidationManagerStatelessTest extends ControllerTest {
   private static final String TEST_TABLE_NAME = "testTable";
   private static final String TEST_TABLE_TWO = "testTable2";
diff --git a/pinot-controller/testng-statefull.xml 
b/pinot-controller/testng-statefull.xml
index e982064142..fc61e096a0 100644
--- a/pinot-controller/testng-statefull.xml
+++ b/pinot-controller/testng-statefull.xml
@@ -27,70 +27,13 @@
       and destroying their own individual state.
   -->
   <test name="testng.suite.controller.statefull">
+    <groups>
+      <run>
+        <exclude name="stateless"/>
+      </run>
+    </groups>
     <packages>
       <package name="org.apache.pinot.controller.*"/>
     </packages>
-    <classes>
-      <class name="org.apache.pinot.controller.ControllerStarterStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.api.ConsumingSegmentInfoReaderStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.api.PinotBrokerRestletResourceStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.api.PinotIngestionRestletResourceStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.ControllerTenantStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.PinotControllerModeStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.ControllerPeriodicTaskStarterStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.core.PinotHelixResourceManagerStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.core.minion.MinionInstancesCleanupTaskStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.core.minion.PinotTaskManagerStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.helix.core.rebalance.TableRebalancerClusterStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-      <class 
name="org.apache.pinot.controller.validation.ValidationManagerStatelessTest">
-        <methods>
-          <exclude name=".*" />
-        </methods>
-      </class>
-    </classes>
   </test>
 </suite>
diff --git a/pinot-controller/testng-stateless.xml 
b/pinot-controller/testng-stateless.xml
index e7f2c69384..ce6e14e4e6 100644
--- a/pinot-controller/testng-stateless.xml
+++ b/pinot-controller/testng-stateless.xml
@@ -29,19 +29,13 @@
       suite.
   -->
   <test name="testng.suite.controller.stateless">
-    <classes>
-      <class 
name="org.apache.pinot.controller.ControllerStarterStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.api.ConsumingSegmentInfoReaderStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.api.PinotBrokerRestletResourceStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.api.PinotIngestionRestletResourceStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.ControllerTenantStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.PinotControllerModeStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.ControllerPeriodicTaskStarterStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.core.PinotHelixResourceManagerStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.core.minion.MinionInstancesCleanupTaskStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.core.minion.PinotTaskManagerStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.helix.core.rebalance.TableRebalancerClusterStatelessTest"/>
-      <class 
name="org.apache.pinot.controller.validation.ValidationManagerStatelessTest"/>
-    </classes>
+    <groups>
+      <run>
+        <include name="stateless"/>
+      </run>
+    </groups>
+    <packages>
+      <package name="org.apache.pinot.controller.*"/>
+    </packages>
   </test>
 </suite>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to