HBASE-30124 Upgrade hbase-server to use junit5 Part14#8201
Open
liuxiaocs7 wants to merge 2 commits intoapache:branch-2from
Open
HBASE-30124 Upgrade hbase-server to use junit5 Part14#8201liuxiaocs7 wants to merge 2 commits intoapache:branch-2from
liuxiaocs7 wants to merge 2 commits intoapache:branch-2from
Conversation
Member
liuxiaocs7
commented
May 7, 2026
- for branch-2
- see: HBASE-30124
There was a problem hiding this comment.
Pull request overview
This PR continues the branch-2 migration of hbase-server tests from JUnit4 to JUnit Jupiter (JUnit5) as part of HBASE-30124, updating assertions/annotations, categories→tags, and converting parameterized tests to use HBase’s @HBaseParameterizedTestTemplate infrastructure.
Changes:
- Replace JUnit4
@Before/@After/@BeforeClass/@AfterClass,@Category, andorg.junit.Assertusages with JUnit5@BeforeEach/@AfterEach/@BeforeAll/@AfterAll,@Tag, andorg.junit.jupiter.api.Assertions. - Migrate several parameterized tests from JUnit4
Parameterizedrunner to@HBaseParameterizedTestTemplate+@TestTemplate+parameters()streams. - Update test utilities/extensions usage in JUnit5 contexts (e.g.,
TableNameTestRule→TableNameTestExtension).
Reviewed changes
Copilot reviewed 73 out of 73 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 | JUnit5 lifecycle + TestInfo-based test naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALSyncTimeoutException.java | JUnit5 assertions/tags/lifecycle conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayValueCompression.java | JUnit5 tags; refactor to extend AbstractTestWALReplay and override WAL creation. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayCompressed.java | Same as above, for WAL compression mode. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayBoundedLogWriterCreation.java | Same as above, bounded writer creation variant. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java | JUnit5 tags/lifecycle; adds reusable createFSHLog helper. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALEdit.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.java | Convert to @HBaseParameterizedTestTemplate; template-based parameterized execution. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java | JUnit5 lifecycle + tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSyncFutureCache.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSyncFuture.java | JUnit5 assertThrows conversion for exception assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java | JUnit5 tags; refactor to AbstractTestWALReplay and override WAL creation. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java | JUnit5 tags/lifecycle conversion for async WAL replay w/ encryption. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestProtobufLog.java | JUnit5 tags conversion for protobuf log tests. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java | JUnit5 lifecycle + TestInfo-based naming. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollPeriod.java | JUnit5 tags/lifecycle; explicit base setup invocation. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java | JUnit5 tags/lifecycle conversion and assertion message modernization. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java | JUnit5 conversion (currently uses @TestTemplate). |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHBaseWalOnEC.java | Convert to @HBaseParameterizedTestTemplate and JUnit5 assumptions/lifecycle. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSWALEntry.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLogDurability.java | JUnit5 tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.java | JUnit5 lifecycle + TestInfo-based naming and assertion updates. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate execution. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCustomWALCellCodec.java | JUnit5 assertThrows conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCompressor.java | JUnit5 assertThrows conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayValueCompression.java | JUnit5 tags/lifecycle conversion; explicit base setup invocation. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayCompressed.java | Same as above for compressed WAL replay. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.java | JUnit5 lifecycle conversion; guards base @BeforeAll to avoid double setup for subclasses. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncProtobufLog.java | JUnit5 lifecycle/tags conversion with safer shutdown. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRollPeriod.java | JUnit5 tags/lifecycle; explicit base setup invocation. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.java | JUnit5 tags/lifecycle conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWALRollStuck.java | JUnit5 lifecycle/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWALDurability.java | JUnit5 lifecycle/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.java | JUnit5 lifecycle/tags conversion with safer shutdown. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java | JUnit5 lifecycle + TestInfo-based naming in base replay tests. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestProtobufLog.java | JUnit5 lifecycle + TestInfo-based naming in base protobuf log tests. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRollPeriod.java | JUnit5 lifecycle conversion of teardown; base setup is now helper-style. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRolling.java | JUnit5 lifecycle + TestInfo-based naming in base log-rolling tests. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.java | JUnit5 lifecycle + TestInfo-based naming in base FSWAL tests. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestStoreHotnessProtector.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestFlushWithThroughputController.java | JUnit5 lifecycle + TestInfo naming conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestCompactionWithThroughputController.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileTrackerValidationUtils.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileTrackerFactory.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFilePrinter.java | JUnit5 lifecycle + TableNameTestExtension migration. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.java | JUnit5 lifecycle + TestInfo naming conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestRegionWithFileBasedStoreFileTracker.java | JUnit5 lifecycle + TestInfo naming conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestMigrationStoreFileTracker.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestChangeStoreFileTracker.java | JUnit5 assertThrows conversion + TableNameTestExtension. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestUserScanQueryMatcher.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanWildcardColumnTracker.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.java | JUnit5 lifecycle/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestNewVersionBehaviorTracker.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestExplicitColumnTracker.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestCompactionScanQueryMatcher.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/AbstractTestScanQueryMatcher.java | JUnit5 @BeforeEach conversion in base matcher tests. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestMetricsThrottleExceptions.java | JUnit5 lifecycle/tags conversion; keeps registry cleanup. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/http/TestRSStatusPage.java | JUnit5 lifecycle/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactor.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestRowKeyDateTieringValueProvider.java | JUnit5 assertThrows + lifecycle conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java | JUnit5 lifecycle/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestFIFOCompactionPolicy.java | Replace ExpectedException with JUnit5 assertThrows and message assertions. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestDateTieredCompactor.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCustomCellTieredCompactor.java | JUnit5 lifecycle/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCurrentHourProvider.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactor.java | JUnit5 assertions conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java | JUnit5 lifecycle/tags conversion and assertion message modernization. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCloseChecker.java | JUnit5 assertions/tags conversion. |
| hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.java | Convert to @HBaseParameterizedTestTemplate + @TestTemplate for explicit perf-style test runs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+74
to
77
| @TestTemplate | ||
| public void testEncodeDecodeOffKVsWithTagsWithTagsCompression() throws Exception { | ||
| doTest(true, true); | ||
| doTest(true, false); | ||
| } |
Comment on lines
129
to
136
| /** | ||
| * Tests that RegionServer aborts if we hit an error closing the WAL when there are unsynced WAL | ||
| * edits. See HBASE-4282. | ||
| */ | ||
| @Test | ||
| @TestTemplate | ||
| public void testRSAbortWithUnflushedEdits() throws Exception { | ||
| LOG.info("Starting testRSAbortWithUnflushedEdits()"); | ||
|
|
Comment on lines
178
to
185
| /** | ||
| * Tests the case where a RegionServer enters a GC pause, comes back online after the master | ||
| * declared it dead and started to split. Want log rolling after a master split to fail. See | ||
| * HBASE-2312. | ||
| */ | ||
| @Test | ||
| @TestTemplate | ||
| public void testLogRollAfterSplitStart() throws IOException { | ||
| LOG.info("Verify wal roll after split starts will fail."); |
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.