HBASE-30124 Upgrade hbase-server to use junit5 Part14#8180
Draft
liuxiaocs7 wants to merge 1 commit intoapache:branch-3from
Draft
HBASE-30124 Upgrade hbase-server to use junit5 Part14#8180liuxiaocs7 wants to merge 1 commit intoapache:branch-3from
liuxiaocs7 wants to merge 1 commit intoapache:branch-3from
Conversation
Member
liuxiaocs7
commented
May 1, 2026
- for branch-3
- see: HBASE-30124
There was a problem hiding this comment.
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+@TestTemplatewithparameters()streams. - Refactored some WAL replay tests to extend
AbstractTestWALReplaydirectly 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.