Skip to content

HBASE-30067 Upgrade hbase-server to use junit5 Part10#8121

Merged
liuxiaocs7 merged 2 commits into
apache:branch-2from
liuxiaocs7:HBASE-30067-branch-2
Apr 24, 2026
Merged

HBASE-30067 Upgrade hbase-server to use junit5 Part10#8121
liuxiaocs7 merged 2 commits into
apache:branch-2from
liuxiaocs7:HBASE-30067-branch-2

Conversation

@liuxiaocs7
Copy link
Copy Markdown
Member

@liuxiaocs7 liuxiaocs7 requested a review from Copilot April 24, 2026 04:34
@liuxiaocs7 liuxiaocs7 added the backport This PR is a back port of some issue or issues already committed to master label Apr 24, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 AbstractTestRpcServer base 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 @Test method. JUnit5 will not execute tests declared in abstract classes, and there is no concrete subclass in this module referencing EnableRSGroupsTestBase, so the testEnableRSGroup coverage 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.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  • EnableRSGroupsTestBase is declared abstract but contains @Test methods. 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.

@liuxiaocs7 liuxiaocs7 merged commit d46b11e into apache:branch-2 Apr 24, 2026
34 of 39 checks passed
liuxiaocs7 added a commit that referenced this pull request Apr 25, 2026
Signed-off-by: Duo Zhang <zhangduo@apache.org>

(cherry picked from commit 73f8114)
(cherry picked from commit d46b11e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a back port of some issue or issues already committed to master

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants