Skip to content

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

Merged
liuxiaocs7 merged 2 commits intoapache:branch-2.6from
liuxiaocs7:HBASE-30124-branch-2.6
May 9, 2026
Merged

HBASE-30124 Upgrade hbase-server to use junit5 Part14#8209
liuxiaocs7 merged 2 commits intoapache:branch-2.6from
liuxiaocs7:HBASE-30124-branch-2.6

Conversation

@liuxiaocs7
Copy link
Copy Markdown
Member

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 set of hbase-server unit/integration tests from JUnit4 to JUnit5 as part of the ongoing JUnit5 upgrade effort (HBASE-30124), updating lifecycle annotations, assertions, categories/tags, and parameterized execution patterns.

Changes:

  • Replaced JUnit4 APIs (@Before/@After/@BeforeClass/@AfterClass, @Category, rules, org.junit.Assert) with JUnit Jupiter equivalents (@BeforeEach/@AfterEach/@BeforeAll/@AfterAll, @Tag, Assertions).
  • Converted JUnit4 parameterized tests to HBase’s JUnit5 template-based parameterization (@HBaseParameterizedTestTemplate + @TestTemplate + parameters()).
  • Updated several tests to use JUnit5-friendly extensions (e.g., TableNameTestExtension) and exception assertions (assertThrows).

Reviewed changes

Copilot reviewed 73 out of 73 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/WALDurabilityTestBase.java JUnit5 lifecycle + TestInfo-based naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALSyncTimeoutException.java JUnit5 assertions/tags and lifecycle conversion.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayValueCompression.java JUnit5 tags and refactor to AbstractTestWALReplay + WAL factory override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayCompressed.java JUnit5 tags and refactor to AbstractTestWALReplay + WAL factory override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplayBoundedLogWriterCreation.java JUnit5 tags and refactor to AbstractTestWALReplay + WAL factory override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java JUnit5 tags and shared createFSHLog helper for subclasses.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALEdit.java JUnit5 assertions/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALConfiguration.java Converted JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALCellCodecWithCompression.java Converted to JUnit5 template parameterization; updated assertions/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java JUnit5 lifecycle/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSyncFutureCache.java JUnit5 assertions/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSyncFuture.java Replaced JUnit4 expected-exception with assertThrows; fixed variable naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.java JUnit5 assertions/tags migration; assertion argument order updated.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureWALReplay.java JUnit5 tags + refactor to AbstractTestWALReplay + WAL factory override.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestSecureAsyncWALReplay.java JUnit5 tags and setup migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestProtobufLog.java JUnit5 tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java JUnit5 lifecycle/tags migration; TestInfo-based naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollPeriod.java JUnit5 tags/lifecycle migration; explicit base setup call.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java JUnit5 assertions/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java JUnit5 tags/lifecycle migration; assertion argument order updated.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java JUnit5 lifecycle/tags migration; replaced Assert.fail with Jupiter fail.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHBaseWalOnEC.java Converted to JUnit5 template parameterization + assumptions API.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSWALEntry.java JUnit5 assertions/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLogDurability.java JUnit5 tags migration (category modernization).
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.java JUnit5 lifecycle/tags migration; TestInfo-based naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java Converted JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCustomWALCellCodec.java Replaced expected-exception annotation with assertThrows; JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestCompressor.java Replaced expected-exception annotation with assertThrows; JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayValueCompression.java JUnit5 tags/lifecycle migration; calls shared async replay setup.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplayCompressed.java JUnit5 tags/lifecycle migration; calls shared async replay setup.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.java JUnit5 tags/lifecycle migration; manages Netty resources with @BeforeAll/@AfterAll.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncProtobufLog.java JUnit5 tags/lifecycle migration; manages Netty event loop lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRollPeriod.java JUnit5 tags/lifecycle migration; explicit base setup call.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncLogRolling.java JUnit5 tags/lifecycle migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWALRollStuck.java JUnit5 tags/lifecycle migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWALDurability.java JUnit5 tags/lifecycle migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.java JUnit5 tags/lifecycle migration; manages Netty resources.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java JUnit5 lifecycle migration; TestInfo naming; assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestProtobufLog.java JUnit5 lifecycle migration; TestInfo naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRollPeriod.java JUnit5 assertion import and lifecycle modernization (@AfterAll).
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRolling.java JUnit5 lifecycle migration; TestInfo naming and assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.java JUnit5 lifecycle migration; TestInfo naming; converted expected-exception tests to assertThrows.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestStoreHotnessProtector.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestFlushWithThroughputController.java JUnit5 lifecycle/tags migration; TestInfo-based naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/throttle/TestCompactionWithThroughputController.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileTrackerValidationUtils.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileTrackerFactory.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFilePrinter.java Migrated to TableNameTestExtension and JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestStoreFileListFile.java JUnit5 lifecycle/tags migration; TestInfo-based naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestRegionWithFileBasedStoreFileTracker.java JUnit5 lifecycle/tags migration; TestInfo-based naming.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestMigrationStoreFileTracker.java Converted parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/storefiletracker/TestChangeStoreFileTracker.java Replaced expected-exception tests with assertThrows; migrated table name rule to extension.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestUserScanQueryMatcher.java JUnit5 tags/assertions migration; assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanWildcardColumnTracker.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.java JUnit5 lifecycle/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestNewVersionBehaviorTracker.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestExplicitColumnTracker.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/TestCompactionScanQueryMatcher.java JUnit5 tags/assertions migration; assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/querymatcher/AbstractTestScanQueryMatcher.java JUnit5 lifecycle migration (@BeforeEach).
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/metrics/TestMetricsThrottleExceptions.java JUnit5 lifecycle/tags migration; assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/http/TestRSStatusPage.java JUnit5 lifecycle/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactor.java Converted parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java Converted parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestRowKeyDateTieringValueProvider.java JUnit5 lifecycle/tags migration; exception testing migrated (one case incomplete).
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestOffPeakHours.java JUnit5 lifecycle/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestFIFOCompactionPolicy.java Replaced ExpectedException rule with assertThrows + message assertions; JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestDateTieredCompactor.java Converted parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCustomCellTieredCompactor.java JUnit5 lifecycle/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCurrentHourProvider.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactor.java JUnit5 assertions migration; assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCompactedHFilesDischarger.java JUnit5 lifecycle/tags migration; assertion argument order updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestCloseChecker.java JUnit5 tags/assertions migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.java Converted parameterized perf test to @HBaseParameterizedTestTemplate + @TestTemplate.
Comments suppressed due to low confidence (1)

hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestRowKeyDateTieringValueProvider.java:172

  • testGetTieringValueWithoutInitialization no longer asserts the expected IllegalStateException. In JUnit 4 this test used @Test(expected=...); after the JUnit 5 migration it now calls provider.getTieringValue(cell) without assertThrows, so the exception will fail the test (or the test will silently pass if behavior changes). Wrap the call with assertThrows(IllegalStateException.class, ...) to preserve the original intent.
  @Test
  public void testGetTieringValueWithoutInitialization() {
    String rowKeyStr = "order_9999999999999999_date";
    byte[] rowKey = Bytes.toBytes(rowKeyStr);
    Cell cell = PrivateCellUtil.createFirstOnRow(rowKey);
    provider.getTieringValue(cell);

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

@liuxiaocs7 liuxiaocs7 added backport This PR is a back port of some issue or issues already committed to master labels May 8, 2026
@liuxiaocs7 liuxiaocs7 merged commit bff8a3c into apache:branch-2.6 May 9, 2026
29 of 35 checks passed
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