From 39da093d54b9f1ddb140242565cac9cab0c2aa5a Mon Sep 17 00:00:00 2001 From: liuxiaocs7 Date: Fri, 13 Feb 2026 02:12:17 +0800 Subject: [PATCH] HBASE-29869 Upgrade hbase-balancer to use junit5 (addendum) --- .../master/balancer/TestBalancerDecision.java | 19 +++++-------- .../balancer/TestBalancerRejection.java | 27 +++++++++---------- ...stCacheAwareLoadBalancerCostFunctions.java | 27 ++++++++----------- 3 files changed, 30 insertions(+), 43 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerDecision.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerDecision.java index 5d1f0777ee6b..3ad9c829ec11 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerDecision.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerDecision.java @@ -17,13 +17,13 @@ */ package org.apache.hadoop.hbase.master.balancer; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.List; import java.util.Map; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; @@ -36,10 +36,8 @@ import org.apache.hadoop.hbase.namequeues.response.NamedQueueGetResponse; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.Assert; -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.hadoop.hbase.shaded.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos; @@ -48,13 +46,10 @@ /** * Test BalancerDecision ring buffer using namedQueue interface */ -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestBalancerDecision extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestBalancerDecision.class); - @Test public void testBalancerDecisions() { conf.setBoolean("hbase.master.balancer.decision.buffer.enabled", true); @@ -79,7 +74,7 @@ public void testBalancerDecisions() { (Map) mockClusterServersWithTables(servers); List plans = loadBalancer.balanceCluster(LoadOfAllTable); boolean emptyPlans = plans == null || plans.isEmpty(); - Assert.assertTrue(emptyPlans || needsBalanceIdleRegion(mockCluster)); + assertTrue(emptyPlans || needsBalanceIdleRegion(mockCluster)); } } final NamedQueueGetRequest namedQueueGetRequest = new NamedQueueGetRequest(); @@ -93,7 +88,7 @@ public void testBalancerDecisions() { MasterProtos.BalancerDecisionsResponse response = MasterProtos.BalancerDecisionsResponse .newBuilder().addAllBalancerDecision(balancerDecisions).build(); List balancerDecisionRecords = ProtobufUtil.getBalancerDecisionEntries(response); - Assert.assertTrue(balancerDecisionRecords.size() > 160); + assertTrue(balancerDecisionRecords.size() > 160); } finally { // reset config conf.unset(HConstants.HBASE_MASTER_LOADBALANCE_BYTABLE); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerRejection.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerRejection.java index c5d8223479e8..5fe056887caf 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerRejection.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestBalancerRejection.java @@ -17,13 +17,15 @@ */ package org.apache.hadoop.hbase.master.balancer; +import static org.junit.jupiter.api.Assertions.assertEquals; +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; import java.util.List; import java.util.Map; 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.LogEntry; @@ -34,10 +36,8 @@ import org.apache.hadoop.hbase.namequeues.response.NamedQueueGetResponse; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; -import org.junit.Assert; -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.hadoop.hbase.shaded.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos; @@ -46,13 +46,10 @@ /** * Test BalancerRejection ring buffer using namedQueue interface */ -@Category({ MasterTests.class, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestBalancerRejection extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestBalancerRejection.class); - static class MockCostFunction extends CostFunction { public static double mockCost; @@ -90,13 +87,13 @@ public void testBalancerRejections() throws Exception { // Reject case 1: Total cost < 0 MockCostFunction.mockCost = -Double.MAX_VALUE; // Since the Balancer was rejected, there should not be any plans - Assert.assertNull(loadBalancer.balanceCluster(LoadOfAllTable)); + assertNull(loadBalancer.balanceCluster(LoadOfAllTable)); // Reject case 2: Cost < minCostNeedBalance MockCostFunction.mockCost = 1; conf.setFloat("hbase.master.balancer.stochastic.minCostNeedBalance", Float.MAX_VALUE); loadBalancer.onConfigurationChange(conf); - Assert.assertNull(loadBalancer.balanceCluster(LoadOfAllTable)); + assertNull(loadBalancer.balanceCluster(LoadOfAllTable)); // NamedQueue is an async Producer-consumer Pattern, waiting here until it completed int maxWaitingCount = 10; @@ -105,9 +102,9 @@ public void testBalancerRejections() throws Exception { } // There are two cases, should be 2 logEntries List logEntries = getBalancerRejectionLogEntries(provider); - Assert.assertEquals(2, logEntries.size()); - Assert.assertTrue(logEntries.get(0).toJsonPrettyPrint().contains("minCostNeedBalance")); - Assert.assertTrue(logEntries.get(1).toJsonPrettyPrint().contains("cost1*multiplier1")); + assertEquals(2, logEntries.size()); + assertTrue(logEntries.get(0).toJsonPrettyPrint().contains("minCostNeedBalance")); + assertTrue(logEntries.get(1).toJsonPrettyPrint().contains("cost1*multiplier1")); } finally { conf.unset(StochasticLoadBalancer.COST_FUNCTIONS_COST_FUNCTIONS_KEY); conf.unset(BaseLoadBalancer.BALANCER_REJECTION_BUFFER_ENABLED); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestCacheAwareLoadBalancerCostFunctions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestCacheAwareLoadBalancerCostFunctions.java index 448e576b1bc7..0551adf9601c 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestCacheAwareLoadBalancerCostFunctions.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestCacheAwareLoadBalancerCostFunctions.java @@ -17,33 +17,28 @@ */ 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.Arrays; import java.util.HashMap; import java.util.Map; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.testclassification.MasterTests; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Pair; -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, MediumTests.class }) +@Tag(MasterTests.TAG) +@Tag(MediumTests.TAG) public class TestCacheAwareLoadBalancerCostFunctions extends StochasticBalancerTestBase { - @ClassRule - public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestCacheAwareLoadBalancerCostFunctions.class); - // Mapping of test -> expected cache cost private final float[] expectedCacheCost = { 0.0f, 0.0f, 0.5f, 1.0f, 0.0f, 0.572f, 0.0f, 0.075f }; @@ -185,12 +180,12 @@ public class TestCacheAwareLoadBalancerCostFunctions extends StochasticBalancerT private CacheAwareLoadBalancer loadBalancer = new CacheAwareLoadBalancer(); - @BeforeClass + @BeforeAll public static void saveInitialConfiguration() { storedConfiguration = new Configuration(conf); } - @Before + @BeforeEach public void beforeEachTest() { conf = new Configuration(storedConfiguration); loadBalancer.loadConf(conf);