HBASE-30067 Upgrade hbase-server to use junit5 Part10#8121
Conversation
liuxiaocs7
commented
Apr 24, 2026
- for branch-2
- see: HBASE-30067
There was a problem hiding this comment.
Pull request overview
This PR continues the JUnit 5 migration for the branch-2 test suite, updating hbase-server (notably MOB and IPC tests) and hbase-rsgroup tests to use JUnit Jupiter APIs, tags, and the project’s JUnit5 parameterized-test template support.
Changes:
- Migrates many tests from JUnit4 (
@Before/@After/@Category/@Rule/@RunWith(Parameterized)) to JUnit5 (@BeforeEach/@AfterEach/@Tag/@TestTemplate,TestInfo, Jupiter assertions). - Reworks parameterized tests to use
@HBaseParameterizedTestTemplate+parameters()(Stream) +@TestTemplate. - Introduces a shared
AbstractTestRpcServerbase to de-duplicate RPC server test logic.
Reviewed changes
Copilot reviewed 61 out of 61 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java | JUnit5 migration of namespace quota/auditor tests; assertion modernizations. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestRSMobFileCleanerChore.java | JUnit5 annotations/tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobWithByteBuffAllocator.java | JUnit5 annotations/tags + Jupiter assertions migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobUtils.java | JUnit5 migration and refactor of table-name helper to accept method-name string. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobStoreScanner.java | JUnit5 migration; replaces TestName rule with TestInfo usage. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobStoreCompaction.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobFileName.java | JUnit5 annotations/tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobFileLink.java | JUnit5 migration; injects TestInfo for table naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobFileCleanupUtil.java | JUnit5 annotations/tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobFileCache.java | JUnit5 annotations/tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobFile.java | JUnit5 migration; injects TestInfo for deterministic naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobDataBlockEncoding.java | JUnit5 annotations/tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobCompactionWithException.java | JUnit5 migration; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobCompactionWithDefaults.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobCompactionRegularRegionBatchMode.java | Updates subclass to match JUnit5 lifecycle and parameterized template usage. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobCompactionOptRegionBatchMode.java | Updates subclass to match JUnit5 lifecycle and parameterized template usage. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobCompactionOptMode.java | Tags + parameterized template annotation alignment. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestExpiredMobFileCleanerChore.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestExpiredMobFileCleaner.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestDefaultMobStoreFlusher.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestCachedMobFile.java | JUnit5 migration; replaces JUnit4 Assert usage. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/mob/MobTestUtil.java | Switches to Jupiter assertions (removes JUnit4 Assert). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSimpleRpcServer.java | Refactors to use shared base AbstractTestRpcServer and JUnit5 lifecycle/tags. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java | JUnit5 migration; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestServerCall.java | JUnit5 tags/lifecycle migration and assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSecurityRpcSentBytesMetrics.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSecureSimpleRpcServer.java | Refactors to use shared base AbstractTestRpcServer; JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSecureNettyRpcServer.java | Migrates to @HBaseParameterizedTestTemplate + @TestTemplate and uses inherited table naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcSkipInitialSaslHandshake.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcServerTraceLogging.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcServerSlowConnectionSetup.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcMetrics.java | JUnit5 tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcHandlerException.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcClientLeaks.java | JUnit5 migration; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRWQueueRpcExecutor.java | JUnit5 migration; replaces TestName with TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestProtoBufRpc.java | Migrates JUnit4 parameterized + expected-exception test to @TestTemplate + assertThrows. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestNettyRpcServer.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate and uses TestInfo naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestNettyIPCCloseConnection.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestNettyChannelWritability.java | JUnit5 tags migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestMultipleServerPrincipalsIPC.java | Migrates JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestMasterFifoRpcScheduler.java | JUnit5 tags/lifecycle migration and assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestHBaseClient.java | JUnit5 tags migration and assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestFifoRpcScheduler.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestCallRunner.java | Migrates OpenTelemetry test support from JUnit4 rule to JUnit5 extension; uses TestInfo. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestBufferChain.java | JUnit5 tags/lifecycle migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/AbstractTestRpcServer.java | New shared base class encapsulating common RPC-server test logic under JUnit5. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestUpdateRSGroupConfiguration.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestTableDescriptorWithRSGroup.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.java | JUnit5 tags/lifecycle migration. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsOfflineMode.java | JUnit5 migration; now extends TestRSGroupsBase and uses TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsKillRS.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsFallback.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBasics.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java | Replaces JUnit4 TestName rule with TestInfo-driven method naming helper. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBalance.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin2.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupsAdmin1.java | JUnit5 migration; updates per-test setup to pass TestInfo. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupMappingScript.java | JUnit5 tags/lifecycle migration and assertion updates. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/TestRSGroupConfig.java | JUnit5 migration; uses TestInfo for unique group naming. |
| hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/EnableRSGroupsTestBase.java | Refactors enable-RSGroup test into an abstract JUnit5 base class. |
| hbase-rsgroup/src/main/java/org/apache/hadoop/hbase/rsgroup/RSGroupUtil.java | Trims trailing whitespace. |
Comments suppressed due to low confidence (1)
hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/EnableRSGroupsTestBase.java:56
- This file now defines an abstract test class (
EnableRSGroupsTestBase) that contains a@Testmethod. JUnit5 will not execute tests declared in abstract classes, and there is no concrete subclass in this module referencingEnableRSGroupsTestBase, so thetestEnableRSGroupcoverage appears to be dropped entirely. Either make this a concrete test class again (e.g.,TestEnableRSGroups) or add a concrete subclass annotated/tagged for execution.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 61 out of 61 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
hbase-rsgroup/src/test/java/org/apache/hadoop/hbase/rsgroup/EnableRSGroupsTestBase.java:55
EnableRSGroupsTestBaseis declaredabstractbut contains@Testmethods. JUnit will not execute tests in an abstract class, and there are no subclasses extending it in the codebase, so this change effectively drops the enable-RSGroup test coverage. Make this class concrete again (or add a concrete subclass that extends it) and restore the test classification tags as appropriate.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.