From 6e0277f5439f963f3d0cb4caa58628e87bb4bff3 Mon Sep 17 00:00:00 2001 From: liuxiaocs7 Date: Tue, 3 Feb 2026 17:55:40 +0800 Subject: [PATCH 1/3] HBASE-29869 Upgrade hbase-balancer to use junit5 --- hbase-balancer/pom.xml | 5 - .../TestFavoredNodeAssignmentHelper.java | 131 +++++++++--------- .../TestStartcodeAgnosticServerName.java | 25 ++-- .../hadoop/hbase/master/TestRegionPlan.java | 48 +++---- .../master/balancer/BalancerTestBase.java | 18 +-- .../balancer/StochasticBalancerTestBase.java | 16 +-- .../balancer/StochasticBalancerTestBase2.java | 8 +- .../balancer/TestBalancerConditionals.java | 38 +++-- .../master/balancer/TestBaseLoadBalancer.java | 90 ++++++------ .../master/balancer/TestDoubleArrayCost.java | 15 +- ...lancingConditionalReplicaDistribution.java | 17 +-- ...rgeClusterBalancingMetaTableIsolation.java | 18 +-- ...eClusterBalancingSystemTableIsolation.java | 18 +-- ...gTableIsolationAndReplicaDistribution.java | 17 +-- .../TestRegionHDFSBlockLocationFinder.java | 33 ++--- .../master/balancer/TestServerAndLoad.java | 18 +-- .../balancer/TestSimpleLoadBalancer.java | 42 +++--- .../balancer/TestStochasticLoadBalancer.java | 52 ++++--- ...tStochasticLoadBalancerBalanceCluster.java | 19 +-- ...ochasticLoadBalancerHeterogeneousCost.java | 21 ++- ...ticLoadBalancerHeterogeneousCostRules.java | 35 ++--- ...estStochasticLoadBalancerLargeCluster.java | 13 +- .../TestStochasticLoadBalancerMidCluster.java | 13 +- ...stStochasticLoadBalancerRegionReplica.java | 19 +-- ...dBalancerRegionReplicaHighReplication.java | 13 +- ...LoadBalancerRegionReplicaLargeCluster.java | 13 +- ...icLoadBalancerRegionReplicaMidCluster.java | 13 +- ...ReplicaReplicationGreaterThanNumNodes.java | 13 +- ...ticLoadBalancerRegionReplicaSameHosts.java | 13 +- ...ticLoadBalancerRegionReplicaWithRacks.java | 18 +-- ...estStochasticLoadBalancerSmallCluster.java | 13 +- .../TestStoreFileTableSkewCostFunction.java | 25 ++-- .../TestUnattainableBalancerCostGoal.java | 17 +-- .../src/test/resources/hbase-site.xml | 28 ++++ 34 files changed, 388 insertions(+), 507 deletions(-) create mode 100644 hbase-balancer/src/test/resources/hbase-site.xml diff --git a/hbase-balancer/pom.xml b/hbase-balancer/pom.xml index bd7fd01794d7..42f883c5833b 100644 --- a/hbase-balancer/pom.xml +++ b/hbase-balancer/pom.xml @@ -93,11 +93,6 @@ junit-jupiter-params test - - org.junit.vintage - junit-vintage-engine - test - org.slf4j jcl-over-slf4j diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java index 1caea76a82ff..3f2ec034f029 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.java @@ -17,11 +17,12 @@ */ package org.apache.hadoop.hbase.favored; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @@ -33,7 +34,6 @@ import java.util.NavigableMap; import java.util.Set; import java.util.TreeMap; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; @@ -45,33 +45,28 @@ import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.util.Triple; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; import org.mockito.Mockito; import org.apache.hbase.thirdparty.com.google.common.collect.Lists; import org.apache.hbase.thirdparty.com.google.common.collect.Sets; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestFavoredNodeAssignmentHelper { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestFavoredNodeAssignmentHelper.class); - - private static List servers = new ArrayList<>(); - private static Map> rackToServers = new HashMap<>(); - private static RackManager rackManager = Mockito.mock(RackManager.class); + private static final List servers = new ArrayList<>(); + private static final Map> rackToServers = new HashMap<>(); + private static final RackManager rackManager = Mockito.mock(RackManager.class); // Some tests have randomness, so we run them multiple times private static final int MAX_ATTEMPTS = 100; - @Rule - public TestName name = new TestName(); + private static String methodName; private static String getRack(int index) { if (index < 10) { @@ -85,8 +80,8 @@ private static String getRack(int index) { } } - @BeforeClass - public static void setupBeforeClass() throws Exception { + @BeforeAll + public static void setupBeforeAll() throws Exception { // Set up some server -> rack mappings // Have three racks in the cluster with 10 hosts each. when(rackManager.getRack(any(ServerName.class))).then(invocation -> { @@ -108,6 +103,11 @@ public static void setupBeforeClass() throws Exception { } } + @BeforeEach + public void setupEach(TestInfo testInfo) { + methodName = testInfo.getTestMethod().get().getName(); + } + // The tests decide which racks to work with, and how many machines to // work with from any given rack // Return a random 'count' number of servers from 'rack' @@ -181,9 +181,9 @@ public void testSecondaryAndTertiaryPlacementWithSingleRack() { ServerName[] secondaryAndTertiaryServers = secondaryAndTertiaryMap.get(region); assertNotNull(secondaryAndTertiaryServers); assertTrue(primaryRSMap.containsKey(region)); - assertTrue(!secondaryAndTertiaryServers[0].equals(primaryRSMap.get(region))); - assertTrue(!secondaryAndTertiaryServers[1].equals(primaryRSMap.get(region))); - assertTrue(!secondaryAndTertiaryServers[0].equals(secondaryAndTertiaryServers[1])); + assertNotEquals(secondaryAndTertiaryServers[0], primaryRSMap.get(region)); + assertNotEquals(secondaryAndTertiaryServers[1], primaryRSMap.get(region)); + assertNotEquals(secondaryAndTertiaryServers[0], secondaryAndTertiaryServers[1]); } } @@ -203,7 +203,7 @@ public void testSecondaryAndTertiaryPlacementWithSingleServer() { Map secondaryAndTertiaryMap = helper.placeSecondaryAndTertiaryRS(primaryRSMap); // no secondary/tertiary placement in case of a single RegionServer - assertTrue(secondaryAndTertiaryMap.get(regions.get(0)) == null); + assertNull(secondaryAndTertiaryMap.get(regions.get(0))); } @Test @@ -220,10 +220,10 @@ public void testSecondaryAndTertiaryPlacementWithMultipleRacks() { FavoredNodeAssignmentHelper helper = primaryRSMapAndHelper.getSecond(); Map primaryRSMap = primaryRSMapAndHelper.getFirst(); - assertTrue(primaryRSMap.size() == 60000); + assertEquals(60000, primaryRSMap.size()); Map secondaryAndTertiaryMap = helper.placeSecondaryAndTertiaryRS(primaryRSMap); - assertTrue(secondaryAndTertiaryMap.size() == 60000); + assertEquals(60000, secondaryAndTertiaryMap.size()); // for every region, the primary should be on one rack and the secondary/tertiary // on another (we create a lot of regions just to increase probability of failure) for (Map.Entry entry : secondaryAndTertiaryMap.entrySet()) { @@ -251,12 +251,12 @@ public void testSecondaryAndTertiaryPlacementWithLessThanTwoServersInRacks() { FavoredNodeAssignmentHelper helper = primaryRSMapAndHelper.getSecond(); Map primaryRSMap = primaryRSMapAndHelper.getFirst(); List regions = primaryRSMapAndHelper.getThird(); - assertTrue(primaryRSMap.size() == 6); + assertEquals(6, primaryRSMap.size()); Map secondaryAndTertiaryMap = helper.placeSecondaryAndTertiaryRS(primaryRSMap); for (RegionInfo region : regions) { // not enough secondary/tertiary room to place the regions - assertTrue(secondaryAndTertiaryMap.get(region) == null); + assertNull(secondaryAndTertiaryMap.get(region)); } } @@ -276,10 +276,10 @@ public void testSecondaryAndTertiaryPlacementWithMoreThanOneServerInPrimaryRack( FavoredNodeAssignmentHelper helper = primaryRSMapAndHelper.getSecond(); Map primaryRSMap = primaryRSMapAndHelper.getFirst(); List regions = primaryRSMapAndHelper.getThird(); - assertTrue(primaryRSMap.size() == 6); + assertEquals(6, primaryRSMap.size()); Map secondaryAndTertiaryMap = helper.placeSecondaryAndTertiaryRS(primaryRSMap); - assertTrue(secondaryAndTertiaryMap.size() == regions.size()); + assertEquals(secondaryAndTertiaryMap.size(), regions.size()); for (RegionInfo region : regions) { ServerName s = primaryRSMap.get(region); ServerName secondaryRS = secondaryAndTertiaryMap.get(region)[0]; @@ -301,7 +301,7 @@ public void testSecondaryAndTertiaryPlacementWithMoreThanOneServerInPrimaryRack( // create regions List regions = new ArrayList<>(regionCount); for (int i = 0; i < regionCount; i++) { - regions.add(RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) + regions.add(RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)) .setStartKey(Bytes.toBytes(i)).setEndKey(Bytes.toBytes(i + 1)).build()); } // place the regions @@ -367,18 +367,15 @@ private void checkNumRegions(int firstRackSize, int secondRackSize, int thirdRac regionMap.put(regionsOnRack1, 1); regionMap.put(regionsOnRack2, 2); regionMap.put(regionsOnRack3, 3); - assertEquals( + assertEquals(rackMap.get(firstRackSize).intValue(), regionMap.get(regionsOnRack1).intValue(), printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1, regionsOnRack2, - regionsOnRack3), - rackMap.get(firstRackSize).intValue(), regionMap.get(regionsOnRack1).intValue()); - assertEquals( + regionsOnRack3)); + assertEquals(rackMap.get(secondRackSize).intValue(), regionMap.get(regionsOnRack2).intValue(), printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1, regionsOnRack2, - regionsOnRack3), - rackMap.get(secondRackSize).intValue(), regionMap.get(regionsOnRack2).intValue()); - assertEquals( + regionsOnRack3)); + assertEquals(rackMap.get(thirdRackSize).intValue(), regionMap.get(regionsOnRack3).intValue(), printProportions(firstRackSize, secondRackSize, thirdRackSize, regionsOnRack1, regionsOnRack2, - regionsOnRack3), - rackMap.get(thirdRackSize).intValue(), regionMap.get(regionsOnRack3).intValue()); + regionsOnRack3)); } private String printProportions(int firstRackSize, int secondRackSize, int thirdRackSize, @@ -399,13 +396,13 @@ public void testConstrainedPlacement() throws Exception { List regions = new ArrayList<>(20); for (int i = 0; i < 20; i++) { - regions.add(RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) + regions.add(RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)) .setStartKey(Bytes.toBytes(i)).setEndKey(Bytes.toBytes(i + 1)).build()); } Map> assignmentMap = new HashMap>(); Map primaryRSMap = new HashMap(); helper.placePrimaryRSAsRoundRobin(assignmentMap, primaryRSMap, regions); - assertTrue(primaryRSMap.size() == regions.size()); + assertEquals(primaryRSMap.size(), regions.size()); Map secondaryAndTertiary = helper.placeSecondaryAndTertiaryRS(primaryRSMap); assertEquals(regions.size(), secondaryAndTertiary.size()); @@ -459,7 +456,7 @@ public void testGetRandomServerSingleRack() throws IOException { // Check we don't get a bad node on any number of attempts for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { ServerName sn = helper.getOneRandomServer(rack, Sets.newHashSet()); - assertTrue("Server:" + sn + " does not belong to list: " + servers, servers.contains(sn)); + assertTrue(servers.contains(sn), "Server:" + sn + " does not belong to list: " + servers); } // Check skipServers multiple times when an invalid server is specified @@ -467,7 +464,7 @@ public void testGetRandomServerSingleRack() throws IOException { Sets.newHashSet(ServerName.valueOf("invalidnode:1234", ServerName.NON_STARTCODE)); for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { ServerName sn = helper.getOneRandomServer(rack, skipServers); - assertTrue("Server:" + sn + " does not belong to list: " + servers, servers.contains(sn)); + assertTrue(servers.contains(sn), "Server:" + sn + " does not belong to list: " + servers); } // Check skipRack multiple times when an valid servers are specified @@ -475,8 +472,8 @@ public void testGetRandomServerSingleRack() throws IOException { skipServers = Sets.newHashSet(skipSN); for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { ServerName sn = helper.getOneRandomServer(rack, skipServers); - assertNotEquals("Skip server should not be selected ", skipSN.getAddress(), sn.getAddress()); - assertTrue("Server:" + sn + " does not belong to list: " + servers, servers.contains(sn)); + assertNotEquals(skipSN.getAddress(), sn.getAddress(), "Skip server should not be selected "); + assertTrue(servers.contains(sn), "Server:" + sn + " does not belong to list: " + servers); } } @@ -497,8 +494,8 @@ public void testGetRandomServerMultiRack() throws IOException { for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { for (String rack : rackList) { ServerName sn = helper.getOneRandomServer(rack, Sets.newHashSet()); - assertTrue("Server:" + sn + " does not belong to rack servers: " + rackToServers.get(rack), - rackToServers.get(rack).contains(sn)); + assertTrue(rackToServers.get(rack).contains(sn), + "Server:" + sn + " does not belong to rack servers: " + rackToServers.get(rack)); } } @@ -508,8 +505,8 @@ public void testGetRandomServerMultiRack() throws IOException { for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { for (String rack : rackList) { ServerName sn = helper.getOneRandomServer(rack, skipServers); - assertTrue("Server:" + sn + " does not belong to rack servers: " + rackToServers.get(rack), - rackToServers.get(rack).contains(sn)); + assertTrue(rackToServers.get(rack).contains(sn), + "Server:" + sn + " does not belong to rack servers: " + rackToServers.get(rack)); } } @@ -521,9 +518,9 @@ public void testGetRandomServerMultiRack() throws IOException { for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { for (String rack : rackList) { ServerName sn = helper.getOneRandomServer(rack, skipServers); - assertFalse("Skip server should not be selected ", skipServers.contains(sn)); - assertTrue("Server:" + sn + " does not belong to rack servers: " + rackToServers.get(rack), - rackToServers.get(rack).contains(sn)); + assertFalse(skipServers.contains(sn), "Skip server should not be selected "); + assertTrue(rackToServers.get(rack).contains(sn), + "Server:" + sn + " does not belong to rack servers: " + rackToServers.get(rack)); } } } @@ -541,7 +538,7 @@ public void testGetFavoredNodes() throws IOException { helper.initialize(); assertTrue(helper.canPlaceFavoredNodes()); - RegionInfo region = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) + RegionInfo region = RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)) .setStartKey(HConstants.EMPTY_START_ROW).setEndKey(HConstants.EMPTY_END_ROW).build(); for (int maxattempts = 0; maxattempts < MAX_ATTEMPTS; maxattempts++) { @@ -576,7 +573,7 @@ public void testGenMissingFavoredNodeOneRack() throws IOException { for (int attempts = 0; attempts < MAX_ATTEMPTS; attempts++) { ServerName genSN = helper.generateMissingFavoredNode(fn, skipServers); checkDuplicateFN(fn, genSN); - assertNotEquals("Generated FN should not match excluded one", snRack1SN3, genSN); + assertNotEquals(snRack1SN3, genSN, "Generated FN should not match excluded one"); } } @@ -619,22 +616,22 @@ public void testGenMissingFavoredNodeMultiRack() throws IOException { ServerName genSN = helper.generateMissingFavoredNode(fn, skipServers); checkDuplicateFN(fn, genSN); checkFNRacks(fn, genSN); - assertNotEquals("Generated FN should not match excluded one", snRack2SN2, genSN); + assertNotEquals(snRack2SN2, genSN, "Generated FN should not match excluded one"); } } private void checkDuplicateFN(List fnList, ServerName genFN) { Set favoredNodes = Sets.newHashSet(fnList); - assertNotNull("Generated FN can't be null", genFN); + assertNotNull(genFN, "Generated FN can't be null"); favoredNodes.add(genFN); - assertEquals("Did not find expected number of favored nodes", - FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favoredNodes.size()); + assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favoredNodes.size(), + "Did not find expected number of favored nodes"); } private void checkDuplicateFN(List fnList) { Set favoredNodes = Sets.newHashSet(fnList); - assertEquals("Did not find expected number of favored nodes", - FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favoredNodes.size()); + assertEquals(FavoredNodeAssignmentHelper.FAVORED_NODES_NUM, favoredNodes.size(), + "Did not find expected number of favored nodes"); } private void checkFNRacks(List fnList, ServerName genFN) { @@ -644,7 +641,7 @@ private void checkFNRacks(List fnList, ServerName genFN) { for (ServerName sn : favoredNodes) { racks.add(rackManager.getRack(sn)); } - assertTrue("FN should be spread atleast across 2 racks", racks.size() >= 2); + assertTrue(racks.size() >= 2, "FN should be spread atleast across 2 racks"); } private void checkFNRacks(List fnList) { @@ -653,6 +650,6 @@ private void checkFNRacks(List fnList) { for (ServerName sn : favoredNodes) { racks.add(rackManager.getRack(sn)); } - assertTrue("FN should be spread atleast across 2 racks", racks.size() >= 2); + assertTrue(racks.size() >= 2, "FN should be spread atleast across 2 racks"); } } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestStartcodeAgnosticServerName.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestStartcodeAgnosticServerName.java index 095495729f26..ee8addc11458 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestStartcodeAgnosticServerName.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/favored/TestStartcodeAgnosticServerName.java @@ -17,24 +17,19 @@ */ package org.apache.hadoop.hbase.favored; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.testclassification.MiscTests; import org.apache.hadoop.hbase.testclassification.SmallTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MiscTests.class, SmallTests.class }) +@Tag(MiscTests.TAG) +@Tag(SmallTests.TAG) public class TestStartcodeAgnosticServerName { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStartcodeAgnosticServerName.class); - @Test public void testStartCodeServerName() { ServerName sn = ServerName.valueOf("www.example.org", 1234, 5678); @@ -42,15 +37,15 @@ public void testStartCodeServerName() { new StartcodeAgnosticServerName("www.example.org", 1234, 5678); assertTrue(ServerName.isSameAddress(sn, snStartCode)); - assertTrue(snStartCode.equals(sn)); - assertTrue(sn.equals(snStartCode)); + assertEquals(snStartCode, sn); + assertEquals(sn, snStartCode); assertEquals(0, snStartCode.compareTo(sn)); StartcodeAgnosticServerName snStartCodeFNPort = new StartcodeAgnosticServerName("www.example.org", 1234, ServerName.NON_STARTCODE); assertTrue(ServerName.isSameAddress(snStartCodeFNPort, snStartCode)); - assertTrue(snStartCode.equals(snStartCodeFNPort)); - assertTrue(snStartCodeFNPort.equals(snStartCode)); + assertEquals(snStartCode, snStartCodeFNPort); + assertEquals(snStartCodeFNPort, snStartCode); assertEquals(0, snStartCode.compareTo(snStartCodeFNPort)); } } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlan.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlan.java index c65198b825bc..f4b37efe3c83 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlan.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlan.java @@ -17,39 +17,37 @@ */ package org.apache.hadoop.hbase.master; -import static junit.framework.TestCase.assertFalse; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; -@Category({ MasterTests.class, SmallTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestRegionPlan { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestRegionPlan.class); - private final ServerName SRC = ServerName.valueOf("source", 1234, 2345); private final ServerName DEST = ServerName.valueOf("dest", 1234, 2345); - @Rule - public TestName name = new TestName(); + + private String methodName; + + @BeforeEach + public void setUp(TestInfo testInfo) { + methodName = testInfo.getTestMethod().get().getName(); + } @Test public void testCompareTo() { - RegionInfo hri = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())).build(); + RegionInfo hri = RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).build(); RegionPlan a = new RegionPlan(hri, null, null); RegionPlan b = new RegionPlan(hri, null, null); assertEquals(0, a.compareTo(b)); @@ -72,24 +70,24 @@ public void testCompareTo() { @Test public void testEqualsWithNulls() { - RegionInfo hri = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())).build(); + RegionInfo hri = RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).build(); RegionPlan a = new RegionPlan(hri, null, null); RegionPlan b = new RegionPlan(hri, null, null); - assertTrue(a.equals(b)); + assertEquals(a, b); a = new RegionPlan(hri, SRC, null); b = new RegionPlan(hri, null, null); - assertFalse(a.equals(b)); + assertNotEquals(a, b); a = new RegionPlan(hri, SRC, null); b = new RegionPlan(hri, SRC, null); - assertTrue(a.equals(b)); + assertEquals(a, b); a = new RegionPlan(hri, SRC, null); b = new RegionPlan(hri, SRC, DEST); - assertFalse(a.equals(b)); + assertNotEquals(a, b); } @Test public void testEquals() { - RegionInfo hri = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())).build(); + RegionInfo hri = RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).build(); // Identity equality RegionPlan plan = new RegionPlan(hri, SRC, DEST); @@ -98,7 +96,7 @@ public void testEquals() { // HRI is used for equality RegionInfo other = - RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName() + "other")).build(); + RegionInfoBuilder.newBuilder(TableName.valueOf(methodName + "other")).build(); assertNotEquals(plan.hashCode(), new RegionPlan(other, SRC, DEST).hashCode()); assertNotEquals(plan, new RegionPlan(other, SRC, DEST)); } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/BalancerTestBase.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/BalancerTestBase.java index 54729f88b70e..d2d7174d021e 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/BalancerTestBase.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/BalancerTestBase.java @@ -17,7 +17,8 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.util.ArrayDeque; import java.util.ArrayList; @@ -45,7 +46,6 @@ import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.Assert; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -171,11 +171,11 @@ public void assertClusterAsBalanced(List servers) { int max = numRegions % numServers == 0 ? min : min + 1; for (ServerAndLoad server : servers) { - assertTrue("All servers should have a positive load. " + server, server.getLoad() >= 0); - assertTrue("All servers should have load no more than " + max + ". " + server, - server.getLoad() <= max); - assertTrue("All servers should have load no less than " + min + ". " + server, - server.getLoad() >= min); + assertTrue(server.getLoad() >= 0, "All servers should have a positive load. " + server); + assertTrue(server.getLoad() <= max, + "All servers should have load no more than " + max + ". " + server); + assertTrue(server.getLoad() >= min, + "All servers should have load no less than " + min + ". " + server); } } @@ -237,7 +237,7 @@ public void assertRegionReplicaPlacement(Map> serve for (RegionInfo info : entry.getValue()) { RegionInfo primaryInfo = RegionReplicaUtil.getRegionInfoForDefaultReplica(info); if (!infos.add(primaryInfo)) { - Assert.fail("Two or more region replicas are hosted on the same host after balance"); + fail("Two or more region replicas are hosted on the same host after balance"); } } } @@ -257,7 +257,7 @@ public void assertRegionReplicaPlacement(Map> serve for (RegionInfo info : entry.getValue()) { RegionInfo primaryInfo = RegionReplicaUtil.getRegionInfoForDefaultReplica(info); if (!infos.add(primaryInfo)) { - Assert.fail("Two or more region replicas are hosted on the same rack after balance"); + fail("Two or more region replicas are hosted on the same rack after balance"); } } } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase.java index 9578f212efb1..02630bc0dc05 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase.java @@ -17,8 +17,8 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.time.Duration; import java.util.List; @@ -30,7 +30,7 @@ import org.apache.hadoop.hbase.master.RackManager; import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; +import org.junit.jupiter.api.BeforeAll; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +44,7 @@ public class StochasticBalancerTestBase extends BalancerTestBase { protected static DummyMetricsStochasticBalancer dummyMetricsStochasticBalancer = new DummyMetricsStochasticBalancer(); - @BeforeClass + @BeforeAll public static void beforeAllTests() throws Exception { conf = HBaseConfiguration.create(); conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, DNSToSwitchMapping.class); @@ -84,7 +84,7 @@ protected void increaseMaxRunTimeOrFail() { protected void testWithClusterWithIteration(Map> serverMap, RackManager rackManager, boolean assertFullyBalanced, boolean assertFullyBalancedForReplicas) { List list = convertToList(serverMap); - LOG.info("Mock Cluster : " + printMock(list) + " " + printStats(list)); + LOG.info("Mock Cluster : {} {}", printMock(list), printStats(list)); loadBalancer.setRackManager(rackManager); // Run the balancer. @@ -106,7 +106,7 @@ protected void testWithClusterWithIteration(Map> se balancedCluster = reconcile(list, plans, serverMap); // Print out the cluster loads to make debugging easier. - LOG.info("Mock after balance: " + printMock(balancedCluster)); + LOG.info("Mock after balance: {}", printMock(balancedCluster)); LoadOfAllTable = (Map) mockClusterServersWithTables(serverMap); plans = loadBalancer.balanceCluster(LoadOfAllTable); @@ -116,8 +116,8 @@ protected void testWithClusterWithIteration(Map> se LOG.info("Mock Final balance: " + printMock(balancedCluster)); if (assertFullyBalanced) { - assertNull("Given a requirement to be fully balanced, second attempt at plans should " - + "produce none.", plans); + assertNull(plans, "Given a requirement to be fully balanced, second attempt at plans should " + + "produce none."); } if (assertFullyBalancedForReplicas) { assertRegionReplicaPlacement(serverMap, rackManager); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase2.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase2.java index 9bab75b51257..1dd622450781 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase2.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/StochasticBalancerTestBase2.java @@ -17,12 +17,12 @@ */ package org.apache.hadoop.hbase.master.balancer; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; public class StochasticBalancerTestBase2 extends StochasticBalancerTestBase { - @Before + @BeforeEach public void before() { conf.setLong(StochasticLoadBalancer.MAX_STEPS_KEY, 2000000L); conf.setFloat("hbase.master.balancer.stochastic.localityCost", 0); @@ -31,7 +31,7 @@ public void before() { loadBalancer.onConfigurationChange(conf); } - @After + @AfterEach public void after() { // reset config to make sure balancer run loadBalancer.onConfigurationChange(conf); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerConditionals.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerConditionals.java index 4dc40cda5481..ee37412914de 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerConditionals.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerConditionals.java @@ -17,29 +17,24 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ SmallTests.class, MasterTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestBalancerConditionals extends BalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestBalancerConditionals.class); - private BalancerConditionals balancerConditionals; private BalancerClusterState mockCluster; - @Before + @BeforeEach public void setUp() { balancerConditionals = BalancerConditionals.create(); mockCluster = mockCluster(new int[] { 0, 1, 2 }); @@ -51,8 +46,8 @@ public void testDefaultConfiguration() { balancerConditionals.setConf(conf); balancerConditionals.loadClusterState(mockCluster); - assertEquals("No conditionals should be loaded by default", 0, - balancerConditionals.getConditionalClasses().size()); + assertEquals(0, balancerConditionals.getConditionalClasses().size(), + "No conditionals should be loaded by default"); } @Test @@ -64,8 +59,8 @@ public void testCustomConditionalsViaConfiguration() { balancerConditionals.setConf(conf); balancerConditionals.loadClusterState(mockCluster); - assertTrue("Custom conditionals should be loaded", - balancerConditionals.isConditionalBalancingEnabled()); + assertTrue(balancerConditionals.isConditionalBalancingEnabled(), + "Custom conditionals should be loaded"); } @Test @@ -76,8 +71,8 @@ public void testInvalidCustomConditionalClass() { balancerConditionals.setConf(conf); balancerConditionals.loadClusterState(mockCluster); - assertEquals("Invalid classes should not be loaded as conditionals", 0, - balancerConditionals.getConditionalClasses().size()); + assertEquals(0, balancerConditionals.getConditionalClasses().size(), + "Invalid classes should not be loaded as conditionals"); } @Test @@ -88,8 +83,7 @@ public void testMetaTableIsolationConditionalEnabled() { balancerConditionals.setConf(conf); balancerConditionals.loadClusterState(mockCluster); - assertTrue("MetaTableIsolationConditional should be active", - balancerConditionals.isTableIsolationEnabled()); + assertTrue(balancerConditionals.isTableIsolationEnabled(), + "MetaTableIsolationConditional should be active"); } - } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java index d9df27994ac9..31bf3d1ed9fb 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBaseLoadBalancer.java @@ -17,9 +17,10 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -36,7 +37,6 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.ArrayUtils; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.ServerMetrics; import org.apache.hadoop.hbase.ServerName; @@ -51,30 +51,26 @@ import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hbase.thirdparty.com.google.common.collect.Lists; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestBaseLoadBalancer extends BalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestBaseLoadBalancer.class); - private static LoadBalancer loadBalancer; private static final Logger LOG = LoggerFactory.getLogger(TestBaseLoadBalancer.class); private static final ServerName master = ServerName.valueOf("fake-master", 0, 1L); private static RackManager rackManager; private static final int NUM_SERVERS = 15; - private static ServerName[] servers = new ServerName[NUM_SERVERS]; + private static final ServerName[] servers = new ServerName[NUM_SERVERS]; int[][] regionsAndServersMocks = new int[][] { // { num regions, num servers } @@ -83,10 +79,9 @@ public class TestBaseLoadBalancer extends BalancerTestBase { new int[] { 1, 3 }, new int[] { 2, 3 }, new int[] { 3, 3 }, new int[] { 25, 3 }, new int[] { 2, 10 }, new int[] { 2, 100 }, new int[] { 12, 10 }, new int[] { 12, 100 }, }; - @Rule - public TestName name = new TestName(); + private String methodName; - @BeforeClass + @BeforeAll public static void beforeAllTests() throws Exception { Configuration conf = HBaseConfiguration.create(); conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, DNSToSwitchMapping.class); @@ -109,6 +104,11 @@ public static void beforeAllTests() throws Exception { } } + @BeforeEach + public void setUpBeforeEach(TestInfo testInfo) throws Exception { + methodName = testInfo.getTestMethod().get().getName(); + } + public static class MockBalancer extends BaseLoadBalancer { @Override @@ -136,7 +136,7 @@ public void testBulkAssignment() throws Exception { } assertEquals(hris.size(), totalRegion); for (int[] mock : regionsAndServersMocks) { - LOG.debug("testBulkAssignment with " + mock[0] + " regions and " + mock[1] + " servers"); + LOG.debug("testBulkAssignment with {} regions and {} servers", mock[0], mock[1]); List regions = randomRegions(mock[0]); List servers = randomServers(mock[1], 0); List list = getListOfServerNames(servers); @@ -197,7 +197,7 @@ public void testRetainAssignment() throws Exception { @Test public void testRandomAssignment() throws Exception { for (int i = 1; i != 5; ++i) { - LOG.info("run testRandomAssignment() with idle servers:" + i); + LOG.info("run testRandomAssignment() with idle servers:{}", i); testRandomAssignment(i); } } @@ -222,14 +222,14 @@ public List getOnlineServersListWithPredicator(List serv return idleServers; } }); - RegionInfo hri1 = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) - .setStartKey(Bytes.toBytes("key1")).setEndKey(Bytes.toBytes("key2")).setSplit(false) - .setRegionId(100).build(); + RegionInfo hri1 = + RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).setStartKey(Bytes.toBytes("key1")) + .setEndKey(Bytes.toBytes("key2")).setSplit(false).setRegionId(100).build(); assertNull(balancer.randomAssignment(hri1, Collections.emptyList())); assertNull(balancer.randomAssignment(hri1, null)); for (int i = 0; i != 3; ++i) { ServerName sn = balancer.randomAssignment(hri1, allServers); - assertTrue("actual:" + sn + ", except:" + idleServers, idleServers.contains(sn)); + assertTrue(idleServers.contains(sn), "actual:" + sn + ", except:" + idleServers); } } @@ -244,15 +244,15 @@ public void testRegionAvailability() throws Exception { List list1 = new ArrayList<>(); List list2 = new ArrayList<>(); // create a region (region1) - RegionInfo hri1 = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) - .setStartKey(Bytes.toBytes("key1")).setEndKey(Bytes.toBytes("key2")).setSplit(false) - .setRegionId(100).build(); + RegionInfo hri1 = + RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).setStartKey(Bytes.toBytes("key1")) + .setEndKey(Bytes.toBytes("key2")).setSplit(false).setRegionId(100).build(); // create a replica of the region (replica_of_region1) RegionInfo hri2 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 1); // create a second region (region2) - RegionInfo hri3 = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) - .setStartKey(Bytes.toBytes("key2")).setEndKey(Bytes.toBytes("key3")).setSplit(false) - .setRegionId(101).build(); + RegionInfo hri3 = + RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).setStartKey(Bytes.toBytes("key2")) + .setEndKey(Bytes.toBytes("key3")).setSplit(false).setRegionId(101).build(); list0.add(hri1); // only region1 list1.add(hri2); // only replica_of_region1 list2.add(hri3); // only region2 @@ -270,13 +270,13 @@ public void testRegionAvailability() throws Exception { assertTrue(cluster.wouldLowerAvailability(hri1, servers[1])); // check whether a move of region1 from servers[0] to servers[2] would lower // the availability of region1 - assertTrue(!cluster.wouldLowerAvailability(hri1, servers[2])); + assertFalse(cluster.wouldLowerAvailability(hri1, servers[2])); // check whether a move of replica_of_region1 from servers[0] to servers[2] would lower // the availability of replica_of_region1 - assertTrue(!cluster.wouldLowerAvailability(hri2, servers[2])); + assertFalse(cluster.wouldLowerAvailability(hri2, servers[2])); // check whether a move of region2 from servers[0] to servers[1] would lower // the availability of region2 - assertTrue(!cluster.wouldLowerAvailability(hri3, servers[1])); + assertFalse(cluster.wouldLowerAvailability(hri3, servers[1])); // now lets have servers[1] host replica_of_region2 list1.add(RegionReplicaUtil.getRegionInfoForReplica(hri3, 1)); @@ -304,7 +304,7 @@ public void testRegionAvailability() throws Exception { cluster = new BalancerClusterState(clusterState, null, null, null); // now repeat check whether a move of region1 from servers[0] to servers[6] would // lower the availability - assertTrue(!cluster.wouldLowerAvailability(hri1, servers[6])); + assertFalse(cluster.wouldLowerAvailability(hri1, servers[6])); } @Test @@ -313,15 +313,15 @@ public void testRegionAvailabilityWithRegionMoves() throws Exception { List list1 = new ArrayList<>(); List list2 = new ArrayList<>(); // create a region (region1) - RegionInfo hri1 = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) - .setStartKey(Bytes.toBytes("key1")).setEndKey(Bytes.toBytes("key2")).setSplit(false) - .setRegionId(100).build(); + RegionInfo hri1 = + RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).setStartKey(Bytes.toBytes("key1")) + .setEndKey(Bytes.toBytes("key2")).setSplit(false).setRegionId(100).build(); // create a replica of the region (replica_of_region1) RegionInfo hri2 = RegionReplicaUtil.getRegionInfoForReplica(hri1, 1); // create a second region (region2) - RegionInfo hri3 = RegionInfoBuilder.newBuilder(TableName.valueOf(name.getMethodName())) - .setStartKey(Bytes.toBytes("key2")).setEndKey(Bytes.toBytes("key3")).setSplit(false) - .setRegionId(101).build(); + RegionInfo hri3 = + RegionInfoBuilder.newBuilder(TableName.valueOf(methodName)).setStartKey(Bytes.toBytes("key2")) + .setEndKey(Bytes.toBytes("key3")).setSplit(false).setRegionId(101).build(); list0.add(hri1); // only region1 list1.add(hri2); // only replica_of_region1 list2.add(hri3); // only region2 @@ -335,7 +335,7 @@ public void testRegionAvailabilityWithRegionMoves() throws Exception { // map (linkedhashmap is important). BalancerClusterState cluster = new BalancerClusterState(clusterState, null, null, rackManager); // check whether moving region1 from servers[1] to servers[2] would lower availability - assertTrue(!cluster.wouldLowerAvailability(hri1, servers[2])); + assertFalse(cluster.wouldLowerAvailability(hri1, servers[2])); // now move region1 from servers[0] to servers[2] cluster.doAction(new MoveRegionAction(0, 0, 2)); @@ -356,7 +356,7 @@ public void testRegionAvailabilityWithRegionMoves() throws Exception { cluster = new BalancerClusterState(clusterState, null, null, rackManager); // check whether a move of replica_of_region2 from servers[12],rack3 to servers[0],rack1 would // lower the availability - assertTrue(!cluster.wouldLowerAvailability(hri4, servers[0])); + assertFalse(cluster.wouldLowerAvailability(hri4, servers[0])); // now move region2 from servers[6],rack2 to servers[0],rack1 cluster.doAction(new MoveRegionAction(2, 2, 0)); // now repeat check if replica_of_region2 from servers[12],rack3 to servers[0],rack1 would @@ -384,8 +384,8 @@ private void assertRetainedAssignment(Map existing, Set onlineServerSet = new TreeSet<>(servers); Set assignedRegions = new TreeSet<>(RegionInfo.COMPARATOR); for (Map.Entry> a : assignment.entrySet()) { - assertTrue("Region assigned to server that was not listed as online", - onlineServerSet.contains(a.getKey())); + assertTrue(onlineServerSet.contains(a.getKey()), + "Region assigned to server that was not listed as online"); for (RegionInfo r : a.getValue()) assignedRegions.add(r); } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java index e557b22d8312..cf3215dd66dd 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestDoubleArrayCost.java @@ -17,22 +17,17 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, SmallTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestDoubleArrayCost { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestDoubleArrayCost.class); - @Test public void testComputeCost() { DoubleArrayCost cost = new DoubleArrayCost(); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.java index 4266c9a49b5b..8dc73d19dfb3 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; @@ -36,20 +35,16 @@ import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Category({ MediumTests.class, MasterTests.class }) +@Tag(MediumTests.TAG) +@Tag(MasterTests.TAG) public class TestLargeClusterBalancingConditionalReplicaDistribution { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestLargeClusterBalancingConditionalReplicaDistribution.class); - private static final Logger LOG = LoggerFactory.getLogger(TestLargeClusterBalancingConditionalReplicaDistribution.class); @@ -61,7 +56,7 @@ public class TestLargeClusterBalancingConditionalReplicaDistribution { private static final ServerName[] servers = new ServerName[NUM_SERVERS]; private static final Map> serverToRegions = new HashMap<>(); - @BeforeClass + @BeforeAll public static void setup() { // Initialize servers for (int i = 0; i < NUM_SERVERS; i++) { diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.java index e4d2e168e2b6..b2f39cf57117 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; @@ -35,20 +34,16 @@ import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Category({ MediumTests.class, MasterTests.class }) +@Tag(MediumTests.TAG) +@Tag(MasterTests.TAG) public class TestLargeClusterBalancingMetaTableIsolation { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestLargeClusterBalancingMetaTableIsolation.class); - private static final Logger LOG = LoggerFactory.getLogger(TestLargeClusterBalancingMetaTableIsolation.class); @@ -60,7 +55,7 @@ public class TestLargeClusterBalancingMetaTableIsolation { private static final ServerName[] servers = new ServerName[NUM_SERVERS]; private static final Map> serverToRegions = new HashMap<>(); - @BeforeClass + @BeforeAll public static void setup() { // Initialize servers for (int i = 0; i < NUM_SERVERS; i++) { @@ -100,5 +95,4 @@ public void testMetaTableIsolation() { private boolean isMetaTableIsolated(BalancerClusterState cluster) { return isTableIsolated(cluster, TableName.META_TABLE_NAME, "Meta"); } - } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.java index 565e0bcef861..434b7f9b2b69 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.java @@ -26,7 +26,6 @@ import java.util.Map; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; @@ -35,20 +34,16 @@ import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Category({ MediumTests.class, MasterTests.class }) +@Tag(MediumTests.TAG) +@Tag(MasterTests.TAG) public class TestLargeClusterBalancingSystemTableIsolation { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestLargeClusterBalancingSystemTableIsolation.class); - private static final Logger LOG = LoggerFactory.getLogger(TestLargeClusterBalancingSystemTableIsolation.class); @@ -61,7 +56,7 @@ public class TestLargeClusterBalancingSystemTableIsolation { private static final ServerName[] servers = new ServerName[NUM_SERVERS]; private static final Map> serverToRegions = new HashMap<>(); - @BeforeClass + @BeforeAll public static void setup() { // Initialize servers for (int i = 0; i < NUM_SERVERS; i++) { @@ -101,5 +96,4 @@ public void testSystemTableIsolation() { private boolean isSystemTableIsolated(BalancerClusterState cluster) { return isTableIsolated(cluster, SYSTEM_TABLE_NAME, "System"); } - } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.java index 1b54b06a5c92..df1274f4d538 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.java @@ -27,7 +27,6 @@ import java.util.Random; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; @@ -36,20 +35,16 @@ import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(LargeTests.TAG) +@Tag(MasterTests.TAG) public class TestLargeClusterBalancingTableIsolationAndReplicaDistribution { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule - .forClass(TestLargeClusterBalancingTableIsolationAndReplicaDistribution.class); - private static final Logger LOG = LoggerFactory.getLogger(TestLargeClusterBalancingTableIsolationAndReplicaDistribution.class); private static final TableName SYSTEM_TABLE_NAME = TableName.valueOf("hbase:system"); @@ -62,7 +57,7 @@ public class TestLargeClusterBalancingTableIsolationAndReplicaDistribution { private static final ServerName[] servers = new ServerName[NUM_SERVERS]; private static final Map> serverToRegions = new HashMap<>(); - @BeforeClass + @BeforeAll public static void setup() { // Initialize servers for (int i = 0; i < NUM_SERVERS; i++) { diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionHDFSBlockLocationFinder.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionHDFSBlockLocationFinder.java index 1f5cdd484b88..b6c5f90f7efe 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionHDFSBlockLocationFinder.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestRegionHDFSBlockLocationFinder.java @@ -17,12 +17,12 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotSame; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -35,7 +35,6 @@ import java.util.TreeMap; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.ClusterMetrics; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HDFSBlocksDistribution; import org.apache.hadoop.hbase.HDFSBlocksDistribution.HostAndWeight; @@ -50,19 +49,15 @@ import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.apache.hadoop.hbase.util.Bytes; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, SmallTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestRegionHDFSBlockLocationFinder { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestRegionHDFSBlockLocationFinder.class); - private static final Random RNG = new Random(); // This test depends on Random#setSeed private static TableDescriptor TD; private static List REGIONS; @@ -80,7 +75,7 @@ private static HDFSBlocksDistribution generate(RegionInfo region) { return distribution; } - @BeforeClass + @BeforeAll public static void setUpBeforeClass() { TD = TableDescriptorBuilder.newBuilder(TableName.valueOf("RegionLocationFinder")).build(); int numRegions = 100; @@ -94,7 +89,7 @@ public static void setUpBeforeClass() { } } - @Before + @BeforeEach public void setUp() { finder = new RegionHDFSBlockLocationFinder(); finder.setClusterInfoProvider(new DummyClusterInfoProvider(null) { diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestServerAndLoad.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestServerAndLoad.java index 9568edad74cd..3a479cfad0d3 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestServerAndLoad.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestServerAndLoad.java @@ -17,24 +17,19 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, SmallTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestServerAndLoad { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestServerAndLoad.class); - @Test public void test() { ServerName server = ServerName.valueOf("host", 12345, 112244); @@ -51,5 +46,4 @@ public void test() { assertNotEquals(sal.hashCode(), new ServerAndLoad(other, startcode).hashCode()); assertNotEquals(sal, new ServerAndLoad(other, startcode)); } - } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java index bd07db37fb18..cc9818e03179 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java @@ -17,8 +17,8 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.HashMap; @@ -26,7 +26,6 @@ import java.util.Map; import java.util.TreeMap; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; @@ -35,30 +34,24 @@ import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.apache.hadoop.net.DNSToSwitchMapping; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** - * Test the load balancer that is created by default. - */ -@Category({ MasterTests.class, SmallTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestSimpleLoadBalancer extends BalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestSimpleLoadBalancer.class); - private static final Logger LOG = LoggerFactory.getLogger(TestSimpleLoadBalancer.class); private static SimpleLoadBalancer loadBalancer; + private String methodName; - @BeforeClass + @BeforeAll public static void beforeAllTests() throws Exception { Configuration conf = HBaseConfiguration.create(); conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, DNSToSwitchMapping.class); @@ -68,10 +61,12 @@ public static void beforeAllTests() throws Exception { loadBalancer.initialize(); } - int[] mockUniformCluster = new int[] { 5, 5, 5, 5, 5, 0 }; + @BeforeEach + public void beforeEach(TestInfo testInfo) { + methodName = testInfo.getTestMethod().get().getName(); + } - @Rule - public TestName name = new TestName(); + int[] mockUniformCluster = new int[] { 5, 5, 5, 5, 5, 0 }; /** * Test the load balancing algorithm. Invariant is that all servers should be hosting either @@ -83,7 +78,7 @@ public void testBalanceClusterOverall() throws Exception { for (int[] mockCluster : clusterStateMocks) { Map> clusterServers = mockClusterServers(mockCluster, 30); List clusterList = convertToList(clusterServers); - clusterLoad.put(TableName.valueOf(name.getMethodName()), clusterServers); + clusterLoad.put(TableName.valueOf(methodName), clusterServers); HashMap>> result = mockClusterServersWithTables(clusterServers); loadBalancer.setClusterLoad(clusterLoad); @@ -130,7 +125,7 @@ private void testImpactOfBalanceClusterOverall(boolean useLoadOfAllTable) throws Map> clusterServers = mockUniformClusterServers(mockUniformCluster); List clusterList = convertToList(clusterServers); - clusterLoad.put(TableName.valueOf(name.getMethodName()), clusterServers); + clusterLoad.put(TableName.valueOf(methodName), clusterServers); // use overall can achieve both table and cluster level balance HashMap>> LoadOfAllTable = mockClusterServersWithTables(clusterServers); @@ -178,5 +173,4 @@ public void testBalanceClusterOverallStrictly() { assertEquals(6, serverAndLoad.getLoad()); } } - } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java index 35744d97301a..14f682b4b2c4 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancer.java @@ -17,11 +17,11 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -36,7 +36,6 @@ import java.util.TreeMap; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.ClusterMetrics; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.RegionMetrics; @@ -49,33 +48,29 @@ import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.apache.hbase.thirdparty.org.apache.commons.collections4.CollectionUtils; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestStochasticLoadBalancer extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancer.class); - private static final String REGION_KEY = "testRegion"; // Mapping of locality test -> expected locality private float[] expectedLocalities = { 1.0f, 0.0f, 0.50f, 0.25f, 1.0f }; private static Configuration storedConfiguration; - @BeforeClass + @BeforeAll public static void saveInitialConfiguration() { storedConfiguration = new Configuration(conf); } - @Before + @BeforeEach public void beforeEachTest() { conf = new Configuration(storedConfiguration); loadBalancer.onConfigurationChange(conf); @@ -256,9 +251,10 @@ public void testUpdateBalancerLoadInfo() { loadBalancer.onConfigurationChange(conf); dummyMetricsStochasticBalancer.clearDummyMetrics(); loadBalancer.updateBalancerLoadInfo(LoadOfAllTable); - assertTrue("Metrics should be recorded!", + assertTrue( dummyMetricsStochasticBalancer.getDummyCostsMap() != null - && !dummyMetricsStochasticBalancer.getDummyCostsMap().isEmpty()); + && !dummyMetricsStochasticBalancer.getDummyCostsMap().isEmpty(), + "Metrics should be recorded!"); String metricRecordKey; if (isByTable) { @@ -286,9 +282,9 @@ public void testUpdateStochasticCosts() { List plans = loadBalancer.balanceCluster((Map) mockClusterServersWithTables(servers)); - assertTrue("Balance plan should not be empty!", plans != null && !plans.isEmpty()); - assertTrue("There should be metrics record in MetricsStochasticBalancer", - !dummyMetricsStochasticBalancer.getDummyCostsMap().isEmpty()); + assertTrue(plans != null && !plans.isEmpty(), "Balance plan should not be empty!"); + assertTrue(!dummyMetricsStochasticBalancer.getDummyCostsMap().isEmpty(), + "There should be metrics record in MetricsStochasticBalancer"); double overallCostOfCluster = loadBalancer.computeCost(clusterState, Double.MAX_VALUE); double overallCostInMetrics = dummyMetricsStochasticBalancer.getDummyCostsMap().get( @@ -308,9 +304,9 @@ public void testUpdateStochasticCostsIfBalanceNotRan() { List plans = loadBalancer.balanceCluster((Map) mockClusterServersWithTables(servers)); - assertTrue("Balance plan should be empty!", plans == null || plans.isEmpty()); - assertTrue("There should be metrics record in MetricsStochasticBalancer!", - !dummyMetricsStochasticBalancer.getDummyCostsMap().isEmpty()); + assertTrue(plans == null || plans.isEmpty(), "Balance plan should be empty!"); + assertFalse(dummyMetricsStochasticBalancer.getDummyCostsMap().isEmpty(), + "There should be metrics record in MetricsStochasticBalancer!"); double overallCostOfCluster = loadBalancer.computeCost(clusterState, Double.MAX_VALUE); double overallCostInMetrics = dummyMetricsStochasticBalancer.getDummyCostsMap().get( @@ -619,8 +615,8 @@ public void testDefaultCostFunctionList() { MemStoreSizeCostFunction.class.getSimpleName(), StoreFileCostFunction.class.getSimpleName()); List actual = Arrays.asList(loadBalancer.getCostFunctionNames()); - assertTrue("ExpectedCostFunctions: " + expected + " ActualCostFunctions: " + actual, - CollectionUtils.isEqualCollection(expected, actual)); + assertTrue(CollectionUtils.isEqualCollection(expected, actual), + "ExpectedCostFunctions: " + expected + " ActualCostFunctions: " + actual); } private boolean needsBalanceIdleRegion(int[] cluster) { diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerBalanceCluster.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerBalanceCluster.java index 50d1b0e84cf9..b133bc5b246f 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerBalanceCluster.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerBalanceCluster.java @@ -17,31 +17,26 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertNull; import java.time.Duration; import java.util.List; import java.util.Map; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerBalanceCluster extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerBalanceCluster.class); - private static final Logger LOG = LoggerFactory.getLogger(TestStochasticLoadBalancerBalanceCluster.class); @@ -57,12 +52,12 @@ public void testBalanceCluster() throws Exception { for (int[] mockCluster : clusterStateMocks) { Map> servers = mockClusterServers(mockCluster); List list = convertToList(servers); - LOG.info("Mock Cluster : " + printMock(list) + " " + printStats(list)); + LOG.info("Mock Cluster : {} {}", printMock(list), printStats(list)); Map>> LoadOfAllTable = (Map) mockClusterServersWithTables(servers); List plans = loadBalancer.balanceCluster(LoadOfAllTable); List balancedCluster = reconcile(list, plans, servers); - LOG.info("Mock Balance : " + printMock(balancedCluster)); + LOG.info("Mock Balance : {}", printMock(balancedCluster)); assertClusterAsBalanced(balancedCluster); LoadOfAllTable = (Map) mockClusterServersWithTables(servers); List secondPlans = loadBalancer.balanceCluster(LoadOfAllTable); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCost.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCost.java index 5909bfb7ff38..ed57bf13d974 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCost.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCost.java @@ -19,8 +19,8 @@ import static org.apache.hadoop.hbase.master.balancer.HeterogeneousCostRulesTestHelper.DEFAULT_RULES_FILE_NAME; import static org.apache.hadoop.hbase.master.balancer.HeterogeneousCostRulesTestHelper.createRulesFile; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.ArrayDeque; @@ -33,7 +33,6 @@ import java.util.TreeMap; import java.util.concurrent.ThreadLocalRandom; import org.apache.hadoop.fs.FileSystem; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseCommonTestingUtil; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; @@ -42,22 +41,18 @@ import org.apache.hadoop.hbase.master.RegionPlan; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestStochasticLoadBalancerHeterogeneousCost extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerHeterogeneousCost.class); - private static final HBaseCommonTestingUtil HTU = new HBaseCommonTestingUtil(); private static String RULES_FILE; - @BeforeClass + @BeforeAll public static void beforeAllTests() throws IOException { conf = HTU.getConfiguration(); conf.setFloat("hbase.master.balancer.stochastic.regionCountCost", 0); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCostRules.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCostRules.java index 2df1aa83a0d1..c6a67a74c70a 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCostRules.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerHeterogeneousCostRules.java @@ -20,32 +20,24 @@ import static org.apache.hadoop.hbase.master.balancer.HeterogeneousCostRulesTestHelper.DEFAULT_RULES_FILE_NAME; import static org.apache.hadoop.hbase.master.balancer.HeterogeneousCostRulesTestHelper.cleanup; import static org.apache.hadoop.hbase.master.balancer.HeterogeneousCostRulesTestHelper.createRulesFile; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.Arrays; import java.util.Collections; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseCommonTestingUtil; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; - -@Category({ MasterTests.class, MediumTests.class }) +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; + +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestStochasticLoadBalancerHeterogeneousCostRules extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerHeterogeneousCostRules.class); - @Rule - public TestName name = new TestName(); - private HeterogeneousRegionCountCostFunction costFunction; private static final HBaseCommonTestingUtil HTU = new HBaseCommonTestingUtil(); @@ -55,17 +47,18 @@ public class TestStochasticLoadBalancerHeterogeneousCostRules extends Stochastic */ private String rulesFilename; - @BeforeClass + @BeforeAll public static void beforeClass() throws IOException { // Ensure test dir is created HTU.getDataTestDir().getFileSystem(HTU.getConfiguration()).mkdirs(HTU.getDataTestDir()); } - @Before - public void before() throws IOException { + @BeforeEach + public void before(TestInfo testInfo) throws IOException { // New rules file name per test. this.rulesFilename = - HTU.getDataTestDir(this.name.getMethodName() + "." + DEFAULT_RULES_FILE_NAME).toString(); + HTU.getDataTestDir(testInfo.getTestMethod().get().getName() + "." + DEFAULT_RULES_FILE_NAME) + .toString(); // Set the created rules filename into the configuration. HTU.getConfiguration().set( HeterogeneousRegionCountCostFunction.HBASE_MASTER_BALANCER_HETEROGENEOUS_RULES_FILE, diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerLargeCluster.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerLargeCluster.java index 6fc9e0be75a3..8675e5ced905 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerLargeCluster.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerLargeCluster.java @@ -18,20 +18,15 @@ package org.apache.hadoop.hbase.master.balancer; import java.time.Duration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerLargeCluster extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerLargeCluster.class); - @Test public void testLargeCluster() { int numNodes = 1000; diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerMidCluster.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerMidCluster.java index e7b3dd3fd8a5..5ba5c555026e 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerMidCluster.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerMidCluster.java @@ -18,20 +18,15 @@ package org.apache.hadoop.hbase.master.balancer; import java.time.Duration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerMidCluster extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerMidCluster.class); - @Test public void testMidCluster() { int numNodes = 100; diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java index 37870ee127bb..97f548e1383b 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java @@ -17,9 +17,9 @@ */ package org.apache.hadoop.hbase.master.balancer; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.HashMap; @@ -28,7 +28,6 @@ import java.util.Map; import java.util.TreeMap; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; @@ -37,19 +36,15 @@ import org.apache.hadoop.hbase.master.RackManager; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerRegionReplica extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerRegionReplica.class); - @Test public void testReplicaCost() { Configuration conf = HBaseConfiguration.create(); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaHighReplication.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaHighReplication.java index 448609bc9818..1e06c06f48e0 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaHighReplication.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaHighReplication.java @@ -18,21 +18,16 @@ package org.apache.hadoop.hbase.master.balancer; import java.time.Duration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestStochasticLoadBalancerRegionReplicaHighReplication extends StochasticBalancerTestBase2 { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerRegionReplicaHighReplication.class); - @Test public void testRegionReplicasOnMidClusterHighReplication() { conf.setLong(StochasticLoadBalancer.MAX_STEPS_KEY, 4000000L); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaLargeCluster.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaLargeCluster.java index fe2236e170b4..2969cb8f0d0c 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaLargeCluster.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaLargeCluster.java @@ -18,21 +18,16 @@ package org.apache.hadoop.hbase.master.balancer; import java.time.Duration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerRegionReplicaLargeCluster extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerRegionReplicaLargeCluster.class); - @Test public void testRegionReplicasOnLargeCluster() { // With default values for moveCost and tableSkewCost, the balancer makes much slower progress. diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaMidCluster.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaMidCluster.java index 44e5d983aaab..bab53f780472 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaMidCluster.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaMidCluster.java @@ -17,20 +17,15 @@ */ package org.apache.hadoop.hbase.master.balancer; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerRegionReplicaMidCluster extends StochasticBalancerTestBase2 { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerRegionReplicaMidCluster.class); - @Test public void testRegionReplicasOnMidCluster() { int numNodes = 200; diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaReplicationGreaterThanNumNodes.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaReplicationGreaterThanNumNodes.java index b37349e8add3..5d0f453e2c43 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaReplicationGreaterThanNumNodes.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaReplicationGreaterThanNumNodes.java @@ -18,21 +18,16 @@ package org.apache.hadoop.hbase.master.balancer; import java.time.Duration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerRegionReplicaReplicationGreaterThanNumNodes extends StochasticBalancerTestBase2 { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule - .forClass(TestStochasticLoadBalancerRegionReplicaReplicationGreaterThanNumNodes.class); - @Test public void testRegionReplicationOnMidClusterReplicationGreaterThanNumNodes() { loadBalancer.onConfigurationChange(conf); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaSameHosts.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaSameHosts.java index 3ddb0943527d..0e1e8a1e52c7 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaSameHosts.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaSameHosts.java @@ -21,22 +21,17 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestStochasticLoadBalancerRegionReplicaSameHosts extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerRegionReplicaSameHosts.class); - @Test public void testRegionReplicationOnMidClusterSameHosts() { conf.setLong(StochasticLoadBalancer.MAX_STEPS_KEY, 2000000L); diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java index bc7ddef3648b..9d1841d045c6 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java @@ -21,27 +21,22 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.master.RackManager; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.hbase.testclassification.MasterTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, LargeTests.class }) +@Tag(MasterTests.TAG) +@Tag(LargeTests.TAG) public class TestStochasticLoadBalancerRegionReplicaWithRacks extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerRegionReplicaWithRacks.class); - private static class ForTestRackManager extends RackManager { int numRacks; - Map serverIndexes = new HashMap(); + Map serverIndexes = new HashMap<>(); int numServers = 0; public ForTestRackManager(int numRacks) { @@ -65,13 +60,12 @@ public void testRegionReplicationOnMidClusterWithRacks() { setMaxRunTime(Duration.ofSeconds(5)); loadBalancer.onConfigurationChange(conf); int numNodes = 5; - int numRegions = numNodes * 1; int replication = 3; // 3 replicas per region int numRegionsPerServer = 1; int numTables = 1; int numRacks = 3; // all replicas should be on a different rack Map> serverMap = - createServerMap(numNodes, numRegions, numRegionsPerServer, replication, numTables); + createServerMap(numNodes, numNodes, numRegionsPerServer, replication, numTables); RackManager rm = new ForTestRackManager(numRacks); testWithClusterWithIteration(serverMap, rm, true, true); } diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerSmallCluster.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerSmallCluster.java index bd934db759b5..92b00cd32944 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerSmallCluster.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerSmallCluster.java @@ -17,20 +17,15 @@ */ package org.apache.hadoop.hbase.master.balancer; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestStochasticLoadBalancerSmallCluster extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStochasticLoadBalancerSmallCluster.class); - @Test public void testSmallCluster() { int numNodes = 10; diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStoreFileTableSkewCostFunction.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStoreFileTableSkewCostFunction.java index 619a055c6502..1b9aca931b49 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStoreFileTableSkewCostFunction.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStoreFileTableSkewCostFunction.java @@ -18,8 +18,8 @@ package org.apache.hadoop.hbase.master.balancer; import static org.apache.hadoop.hbase.master.balancer.CandidateGeneratorTestUtil.createMockBalancerClusterState; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.when; import java.util.ArrayDeque; @@ -30,7 +30,6 @@ import java.util.Map; import java.util.Random; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.RegionMetrics; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.Size; @@ -39,18 +38,14 @@ import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.SmallTests; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; -@Category({ MasterTests.class, SmallTests.class }) +@Tag(MasterTests.TAG) +@Tag(SmallTests.TAG) public class TestStoreFileTableSkewCostFunction { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestStoreFileTableSkewCostFunction.class); - private static final TableName DEFAULT_TABLE = TableName.valueOf("testTable"); private static final Map REGION_TO_STORE_FILE_SIZE_MB = new HashMap<>(); @@ -80,7 +75,7 @@ public void testUniformDistribution() { double cost = costFunction.cost(); // Expect zero cost since all regions (from the same table) are balanced. - assertEquals("Uniform distribution should yield zero cost", 0.0, cost, 1e-6); + assertEquals(0.0, cost, 1e-6, "Uniform distribution should yield zero cost"); } /** @@ -110,7 +105,7 @@ public void testSkewedDistribution() { double cost = costFunction.cost(); // Expect a positive cost because the distribution is skewed. - assertTrue("Skewed distribution should yield a positive cost", cost > 0.0); + assertTrue(cost > 0.0, "Skewed distribution should yield a positive cost"); } /** @@ -129,7 +124,7 @@ public void testEmptyDistribution() { double cost = costFunction.cost(); // Expect zero cost when there is no load. - assertEquals("Empty distribution should yield zero cost", 0.0, cost, 1e-6); + assertEquals(0.0, cost, 1e-6, "Empty distribution should yield zero cost"); } /** @@ -164,7 +159,7 @@ public void testMultipleTablesDistribution() { double cost = costFunction.cost(); // Expect a positive cost because the skew is computed per table. - assertTrue("Multiple table distribution should yield a positive cost", cost > 0.0); + assertTrue(cost > 0.0, "Multiple table distribution should yield a positive cost"); } /** diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestUnattainableBalancerCostGoal.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestUnattainableBalancerCostGoal.java index ffa2b4a78212..37cefa78b8fe 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestUnattainableBalancerCostGoal.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestUnattainableBalancerCostGoal.java @@ -26,17 +26,15 @@ import java.util.Map; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.BeforeClass; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.experimental.categories.Category; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,13 +44,10 @@ * wasteful. This test ensures that the balancer will not get stuck in a loop of continuously moving * regions. */ -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestUnattainableBalancerCostGoal { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestUnattainableBalancerCostGoal.class); - private static final Logger LOG = LoggerFactory.getLogger(TestUnattainableBalancerCostGoal.class); private static final TableName SYSTEM_TABLE_NAME = TableName.valueOf("hbase:system"); @@ -65,7 +60,7 @@ public class TestUnattainableBalancerCostGoal { private static final ServerName[] servers = new ServerName[NUM_SERVERS]; private static final Map> serverToRegions = new HashMap<>(); - @BeforeClass + @BeforeAll public static void setup() { // Initialize servers for (int i = 0; i < NUM_SERVERS; i++) { diff --git a/hbase-balancer/src/test/resources/hbase-site.xml b/hbase-balancer/src/test/resources/hbase-site.xml new file mode 100644 index 000000000000..ab4d1cd0b733 --- /dev/null +++ b/hbase-balancer/src/test/resources/hbase-site.xml @@ -0,0 +1,28 @@ + + + + + + hbase.defaults.for.version.skip + true + + From 51c09b9155e9cd1c4c168c53965ba315df6d876c Mon Sep 17 00:00:00 2001 From: liuxiaocs7 Date: Mon, 9 Feb 2026 16:42:56 +0800 Subject: [PATCH 2/3] fix --- .../src/test/resources/hbase-site.xml | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 hbase-balancer/src/test/resources/hbase-site.xml diff --git a/hbase-balancer/src/test/resources/hbase-site.xml b/hbase-balancer/src/test/resources/hbase-site.xml deleted file mode 100644 index ab4d1cd0b733..000000000000 --- a/hbase-balancer/src/test/resources/hbase-site.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - hbase.defaults.for.version.skip - true - - From 6c5299f595f3f4f4e60a45381e4c6d2a4b36a963 Mon Sep 17 00:00:00 2001 From: liuxiaocs7 Date: Mon, 9 Feb 2026 16:50:47 +0800 Subject: [PATCH 3/3] update --- .../hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java index cc9818e03179..f48dfe29c712 100644 --- a/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java +++ b/hbase-balancer/src/test/java/org/apache/hadoop/hbase/master/balancer/TestSimpleLoadBalancer.java @@ -42,6 +42,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * Test the load balancer that is created by default. + */ @Tag(MasterTests.TAG) @Tag(SmallTests.TAG) public class TestSimpleLoadBalancer extends BalancerTestBase {