HBASE-30124 Upgrade hbase-server to use junit5 Part14#8209
Merged
liuxiaocs7 merged 2 commits intoapache:branch-2.6from May 9, 2026
Merged
HBASE-30124 Upgrade hbase-server to use junit5 Part14#8209liuxiaocs7 merged 2 commits intoapache:branch-2.6from
liuxiaocs7 merged 2 commits intoapache:branch-2.6from
Conversation
Member
liuxiaocs7
commented
May 8, 2026
- for branch-2.6
- see: HBASE-30124
There was a problem hiding this comment.
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
testGetTieringValueWithoutInitializationno longer asserts the expectedIllegalStateException. In JUnit 4 this test used@Test(expected=...); after the JUnit 5 migration it now callsprovider.getTieringValue(cell)withoutassertThrows, so the exception will fail the test (or the test will silently pass if behavior changes). Wrap the call withassertThrows(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.
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.