Skip to content

HBASE-30124 Upgrade hbase-server to use junit5 Part14#8180

Draft
liuxiaocs7 wants to merge 1 commit intoapache:branch-3from
liuxiaocs7:HBASE-30124-branch-3
Draft

HBASE-30124 Upgrade hbase-server to use junit5 Part14#8180
liuxiaocs7 wants to merge 1 commit intoapache:branch-3from
liuxiaocs7:HBASE-30124-branch-3

Conversation

@liuxiaocs7
Copy link
Copy Markdown
Member

@liuxiaocs7 liuxiaocs7 requested a review from Copilot May 1, 2026 06:24
@liuxiaocs7 liuxiaocs7 added the backport This PR is a back port of some issue or issues already committed to master label May 1, 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 a large set of hbase-server tests from JUnit 4 to JUnit 5 (Jupiter), continuing the branch-3 JUnit5 migration work for HBASE-30124.

Changes:

  • Replaced JUnit4 annotations/rules/categories (@Before/@After/@BeforeClass, @Rule TestName, @Category, @RunWith(Parameterized.class), etc.) with JUnit5 equivalents (@BeforeEach/@AfterEach/@BeforeAll/@AfterAll, TestInfo, @Tag).
  • Converted parameterized tests to use @HBaseParameterizedTestTemplate + @TestTemplate with parameters() streams.
  • Refactored some WAL replay tests to extend AbstractTestWALReplay directly and to share WAL creation logic via helper methods.

Reviewed changes

Copilot reviewed 83 out of 83 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/WALDurabilityTestBase.java Switch lifecycle and assertions to JUnit5; replace TestName rule with TestInfo.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALSyncTimeoutException.java Convert annotations/assertions to JUnit5; replace categories with tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayValueCompression.java Migrate to JUnit5 and rebase on AbstractTestWALReplay; provide createWAL override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayCompressed.java Migrate to JUnit5 and rebase on AbstractTestWALReplay; provide createWAL override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayBoundedLogWriterCreation.java Migrate to JUnit5 and rebase on AbstractTestWALReplay; provide createWAL override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java JUnit5 migration; add shared createFSHLog helper and updated setup.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALEdit.java Convert assertions/annotations/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.java Convert JUnit4 parameterization to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.java Convert to @HBaseParameterizedTestTemplate; update assertions and parameter source.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java Replace JUnit4 lifecycle/category with JUnit5 @BeforeEach/@AfterEach and tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSyncFutureCache.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSyncFuture.java Replace JUnit4 expected-exception style with assertThrows.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.java Convert assertions/categories to JUnit5/tags; reorder assert message params.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java Rebase on AbstractTestWALReplay; JUnit5 tags + setup; override createWAL.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java Convert to JUnit5 tags + @BeforeAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestProtobufLog.java Convert to JUnit5 tags; remove JUnit4 class rule usage.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java Switch TestName rule to TestInfo + @BeforeEach; JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java Convert to JUnit5 tags; adjust assertion argument order for Jupiter.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java Convert to JUnit5 tags and updated assertion signatures.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollPeriod.java Convert to JUnit5 tags/@BeforeAll; rely on abstract helper setup.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHBaseWalOnEC.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSWALEntry.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLogDurability.java Convert categories to JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.java Replace TestName rule with TestInfo; migrate to JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate; TestInfo naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCustomWALCellCodec.java Convert expected exception to assertThrows; JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCompressor.java Convert expected exception to assertThrows; JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCombinedAsyncWriter.java Replace TestName rule with TestInfo; JUnit5 tags/lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayValueCompression.java Convert to JUnit5 tags + @BeforeAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayCompressed.java Convert to JUnit5 tags + @BeforeAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.java JUnit5 migration for async WAL replay tests; updated setup/teardown.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncProtobufLog.java Convert async protobuf WAL tests to JUnit5 tags + lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.java Convert to JUnit5 tags + @BeforeAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRollPeriod.java Convert to JUnit5 tags/@BeforeAll; rely on abstract helper setup.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWALRollStuck.java Convert to JUnit5 tags + lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWALDurability.java Convert categories to JUnit5 tags + @BeforeAll/@AfterAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.java Convert categories to JUnit5 tags + @BeforeAll/@AfterAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogTestHelper.java Convert assertions to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java Convert lifecycle to JUnit5; replace TestName with TestInfo-derived string.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestProtobufLog.java Convert lifecycle to JUnit5; replace TestName rule with TestInfo name string.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRolling.java Convert lifecycle/assertions to JUnit5 and replace TestName rule with TestInfo.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRollPeriod.java Convert teardown to JUnit5; keep explicit setup invoked by subclasses.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.java Convert lifecycle/assertions to JUnit5 and replace expected exceptions with assertThrows.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestStoreHotnessProtector.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestFlushWithThroughputController.java Replace TestName rule with TestInfo; migrate to JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestCompactionWithThroughputController.java Convert to JUnit5 tags and assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileTrackerValidationUtils.java Convert to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileTrackerFactory.java Convert to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFilePrinter.java Replace deprecated TableNameTestRule with TableNameTestExtension; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestRegionWithFileBasedStoreFileTracker.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestMigrationStoreFileTracker.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate; TestInfo naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestChangeStoreFileTracker.java Replace deprecated TableNameTestRule with TableNameTestExtension; convert expected exceptions to assertThrows.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestStartupWithLegacyRegionReplicationEndpoint.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationSinkCallbackAndFlushConcurrently.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationSink.java Replace deprecated TableNameTestRule with TableNameTestExtension; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationForWriteException.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationForSkipWAL.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationForFlushMarker.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationFlushRequester.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/regionreplication/TestRegionReplicationBufferManager.java Convert lifecycle/assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestUserScanQueryMatcher.java Convert assertions/categories to JUnit5/tags; adjust assertion argument order.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanWildcardColumnTracker.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.java Replace wildcard static assert import with explicit Jupiter assertions; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestNewVersionBehaviorTracker.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestExplicitColumnTracker.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestCompactionScanQueryMatcher.java Convert assertions/categories to JUnit5/tags; adjust assertion argument order.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/AbstractTestScanQueryMatcher.java Convert setup to JUnit5 @BeforeEach.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestMetricsThrottleExceptions.java Convert lifecycle/assertions/categories to JUnit5/tags; keep metrics registry cleanup.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/http/TestRSStatusPage.java Replace TestName rule with TestInfo; convert lifecycle/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactor.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestRowKeyDateTieringValueProvider.java Convert expected exceptions to assertThrows; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java Convert lifecycle/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestFIFOCompactionPolicy.java Replace ExpectedException rule with assertThrows; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestDateTieredCompactor.java Convert parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCustomCellTieredCompactor.java Convert lifecycle/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCurrentHourProvider.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactor.java Convert assertions to JUnit5; adjust assertion argument order.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java Convert lifecycle/categories/assertions to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCloseChecker.java Convert assertions/categories to JUnit5/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.java Convert parameterization to @HBaseParameterizedTestTemplate + @TestTemplate; update docs.

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

@liuxiaocs7 liuxiaocs7 marked this pull request as draft May 1, 2026 10:02
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