Skip to content

HBASE-30059 Upgrade hbase-server to use junit5 Part6#8112

Merged
liuxiaocs7 merged 2 commits intoapache:branch-2from
liuxiaocs7:HBASE-30059-branch-2.0
Apr 24, 2026
Merged

HBASE-30059 Upgrade hbase-server to use junit5 Part6#8112
liuxiaocs7 merged 2 commits intoapache:branch-2from
liuxiaocs7:HBASE-30059-branch-2.0

Conversation

@liuxiaocs7
Copy link
Copy Markdown
Member

@liuxiaocs7 liuxiaocs7 added the backport This PR is a back port of some issue or issues already committed to master label Apr 22, 2026
@liuxiaocs7 liuxiaocs7 force-pushed the HBASE-30059-branch-2.0 branch from 8a83b53 to 3e9fcda Compare April 22, 2026 13:25
@liuxiaocs7 liuxiaocs7 changed the title HBASE-30059 Upgrade hbase-server to use junit5 HBASE-30059 Upgrade hbase-server to use junit5 Part6 Apr 22, 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

Migrates additional hbase-server (and one shared hbase-common) tests on branch-2 from JUnit 4 to JUnit 5 as part of HBASE-30059, continuing the project’s JUnit5 transition.

Changes:

  • Replace JUnit4 lifecycle/category/rules usage (@BeforeClass/@AfterClass, @Category, @Rule/@ClassRule, ExpectedException, Parameterized runner) with JUnit5 equivalents (@BeforeAll/@AfterAll, @Tag, extensions, assertThrows, @TestTemplate).
  • Update assertions to JUnit Jupiter (org.junit.jupiter.api.Assertions) and adjust message parameter ordering in many places.
  • Introduce/standardize JUnit5-friendly test naming/table naming patterns (e.g., TestInfo, TableNameTestExtension, and deprecate TableNameTestRule).

Reviewed changes

Copilot reviewed 44 out of 44 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionReplicas.java Convert assertions and annotations to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/replication/TestModifyPeerProcedureRetryBackoff.java Switch lifecycle + categories to JUnit5 tags/annotations.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/replication/TestDisablePeerModification.java Migrate parameterized test to @HBaseParameterizedTestTemplate + JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestWakeUpUnexpectedProcedure.java Convert JUnit4 categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestTransitRegionStateProcedure.java Replace JUnit4 rules with TestInfo and JUnit5 lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestTRSPPersistUninitializedSubProc.java Convert categories/lifecycle to JUnit5 tags/annotations.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.java Replace TestName rule with TestInfo-backed method name tracking.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestSCPGetRegionsRace.java Convert JUnit4 categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRollbackSCP.java Convert JUnit4 categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRogueRSAssignment.java Replace ExpectedException with assertThrows, migrate lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReportRegionStateTransitionRetry.java Convert JUnit4 categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReportRegionStateTransitionFromDeadServer.java Convert assertions + lifecycle/categories to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReportOnlineRegionsRace.java Convert JUnit4 categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionStates.java Convert setup/teardown and assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionStateStore.java Replace TableNameTestRule with TableNameTestExtension (JUnit5 extension).
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplitAndSeparateChildren.java Replace TestName rule with TestInfo-backed method name tracking.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionSplit.java Replace TestName rule with TestInfo-backed method name tracking.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionReplicaSplit.java Replace TestName rule with TestInfo-backed method name tracking.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionMoveAndAbandon.java Convert per-test setup/teardown to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionBypass.java Replace TestName rule usage with TestInfo, migrate lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRegionAssignedToMultipleRegionServers.java Convert categories/lifecycle/assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestReduceExcessRegionReplicasBlockedByRIT.java Convert categories/lifecycle/assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestRaceBetweenSCPAndTRSP.java Convert categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestOpenRegionProcedureHang.java Convert categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestOpenRegionProcedureBackoff.java Convert categories/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestModifyTableWhileMerging.java Convert assertions/lifecycle to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestMergeTableRegionsProcedure.java Replace TestName rule with TestInfo-backed method name tracking, migrate lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestMasterAbortWhileMergingTable.java Convert assertions/lifecycle/categories to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestHbckChore.java Convert per-test setup and tags to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestExceptionInUnassignedRegion.java Convert assertions/lifecycle/categories to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestExceptionInAssignRegion.java Convert assertions/lifecycle/categories to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestDeadServerMetricRegionChore.java Convert per-test setup/teardown to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestCloseRegionWhileRSCrash.java Convert lifecycle/categories to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentOnRSCrash.java Convert per-test setup/teardown and assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerUtil.java Convert lifecycle and assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerLoadMetaRegionState.java Convert lifecycle/categories to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerBase.java Replace TestName rule with TestInfo-based method name tracking; migrate lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.java Update to use base’s testMethodName and JUnit5 assertions/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAssignRegionToUninitializedRegionServer.java Convert lifecycle/categories/assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAMServerFailedOpen.java Convert categories/assertions to JUnit5 and base testMethodName.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestAMAssignWithRandExec.java Convert categories to JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.java Convert static assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java Replace TestName rule with TestInfo injection across tests; migrate to JUnit5.
hbase-common/src/test/java/org/apache/hadoop/hbase/TableNameTestRule.java Deprecate in favor of TableNameTestExtension during JUnit5 migration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@liuxiaocs7 liuxiaocs7 requested a review from Copilot April 23, 2026 06:24
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 44 out of 44 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (2)

hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestTransitRegionStateProcedure.java:1

  • TestInfo#getTestMethod() returns an Optional, but the code calls .get() directly, which will throw a NoSuchElementException with a poor diagnostic if the method is absent (e.g., some templated/dynamic scenarios). Prefer orElseThrow(...) with a descriptive message, or derive the name via testInfo.getDisplayName() if that’s acceptable for table naming.
    hbase-server/src/test/java/org/apache/hadoop/hbase/master/assignment/TestSplitTableRegionProcedure.java:1
  • Using assertTrue(regions != null, ...) and assertTrue(regions.length == 1, ...) makes failures less descriptive than dedicated assertions. Prefer assertNotNull(regions, ...) and assertEquals(1, regions.length, ...) to improve readability and failure output (expected/actual).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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

(cherry picked from commit 03f9f17)
(cherry picked from commit 72c1824)
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