Skip to content

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

Open
liuxiaocs7 wants to merge 2 commits intoapache:branch-2from
liuxiaocs7:HBASE-30124-branch-2
Open

HBASE-30124 Upgrade hbase-server to use junit5 Part14#8201
liuxiaocs7 wants to merge 2 commits intoapache:branch-2from
liuxiaocs7:HBASE-30124-branch-2

Conversation

@liuxiaocs7
Copy link
Copy Markdown
Member

@liuxiaocs7 liuxiaocs7 requested a review from Copilot May 7, 2026 06:52
@liuxiaocs7 liuxiaocs7 added the backport This PR is a back port of some issue or issues already committed to master label May 7, 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 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, and org.junit.Assert usages with JUnit5 @BeforeEach/@AfterEach/@BeforeAll/@AfterAll, @Tag, and org.junit.jupiter.api.Assertions.
  • Migrate several parameterized tests from JUnit4 Parameterized runner to @HBaseParameterizedTestTemplate + @TestTemplate + parameters() streams.
  • Update test utilities/extensions usage in JUnit5 contexts (e.g., TableNameTestRuleTableNameTestExtension).

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.");
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