Skip to content

HBASE-30138 Upgrade hbase-server to use junit5 Part16#8191

Draft
liuxiaocs7 wants to merge 2 commits intoapache:masterfrom
liuxiaocs7:HBASE-30138
Draft

HBASE-30138 Upgrade hbase-server to use junit5 Part16#8191
liuxiaocs7 wants to merge 2 commits intoapache:masterfrom
liuxiaocs7:HBASE-30138

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

This PR continues the HBASE-30138 effort to migrate hbase-server tests from JUnit4 to JUnit5, updating lifecycle annotations, assertions, categories/tags, and converting JUnit4 parameterized/rule patterns to their JUnit5 equivalents (including HBase’s @HBaseParameterizedTestTemplate).

Changes:

  • Migrated numerous RegionServer-related tests from JUnit4 (@Before/@After/@Category/@RunWith, Rules) to JUnit5 (@BeforeEach/@AfterEach/@Tag, extensions, TestInfo).
  • Converted JUnit4 parameterized tests to JUnit5 @TestTemplate + @HBaseParameterizedTestTemplate with Stream<Arguments> parameters().
  • Updated assertions to JUnit5 org.junit.jupiter.api.Assertions styles and modern exception assertions (assertThrows).

Reviewed changes

Copilot reviewed 51 out of 51 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestNotCleanupCompactedFileWhenRegionWarmup.java JUnit5 lifecycle/tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestNewVersionBehaviorFromClientSide.java Replace JUnit4 rules with TestInfo-based naming and JUnit5 annotations.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMutateRowsRecovery.java JUnit5 lifecycle/tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControlBasic.java Replace @Category with @Tag, JUnit5 assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.java Replace JUnit4 Assert usage with JUnit5 assertions and tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.java Convert JUnit4 parameterized test to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithNoneAndUseDataEncoding.java Convert parameterized runner to @HBaseParameterizedTestTemplate + constructor params.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithNoneAndNoDataEncoding.java Convert parameterized runner to @HBaseParameterizedTestTemplate + constructor params.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithAlgoGZAndUseDataEncoding.java Convert parameterized runner to @HBaseParameterizedTestTemplate + constructor params.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScannerWithAlgoGZAndNoDataEncoding.java Convert parameterized runner to @HBaseParameterizedTestTemplate + constructor params.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java Refactor parameter handling for JUnit5 @TestTemplate and Stream<Arguments>.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMinVersions.java Replace JUnit4 rules with TestInfo, JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMinorCompaction.java Replace TestName rule with TestInfo, JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMiniBatchOperationInProgress.java JUnit5 tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsUserAggregate.java JUnit5 lifecycle/tags migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableRequests.java JUnit5 tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableMetricsMap.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionWrapperTableDescriptorHash.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServerAggregate.java JUnit5 tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java JUnit5 lifecycle/tags migration (keeps registry cleanup).
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java JUnit5 tag migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsJvm.java Migrate junit.framework/JUnit4 assertions to JUnit5; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsHeapMemoryManager.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMergesSplitsAddToTracker.java Replace deprecated TableNameTestRule with TableNameTestExtension; JUnit5 migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreSegmentsIterator.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemstoreLABWithoutPool.java Convert @Ignore to @Disabled; JUnit5 tags/lifecycle/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreFlusher.java Replace TestName rule with TestInfo; JUnit5 migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMaxResultsPerColumnFamily.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMajorCompaction.java Convert JUnit4 parameterized runner to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestLogRoller.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeyValueScanFixture.java JUnit5 tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeyValueHeap.java JUnit5 tag/assert migration; modernize assertThrows import.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java Replace @Test(expected=...) with assertThrows; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestIsDeleteFailure.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestInputStreamBlockDistribution.java JUnit5 lifecycle/tags/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHStore.java Replace TestName rule with TestInfo; migrate JUnit timeout to @Timeout.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionWithInMemoryFlush.java JUnit5 tag/assert migration for subclass of TestHRegion.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionTracing.java Migrate OpenTelemetry + TableName helpers to JUnit5 extensions and lifecycle annotations.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java Convert JUnit4 parameterized runner to @HBaseParameterizedTestTemplate + @TestTemplate.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionOnCluster.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.java Replace TestName rule with TestInfo; JUnit5 lifecycle/tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java Large-scale JUnit5 migration: rules → TestInfo, expected-exception → assertThrows, tags/lifecycle updates.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHMobStore.java Replace TestName rule with TestInfo; migrate to JUnit5 assertions/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java JUnit5 tag/assert migration.
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHdfsSnapshotHRegion.java JUnit5 lifecycle/tags/assert migration.

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

Comment on lines +117 to +123
@BeforeEach
public void setUp(TestInfo testInfo) throws Exception {
this.name = testInfo.getTestMethod().get().getName();
this.htd =
UTIL.createTableDescriptor(TableName.valueOf(name.replace('[', 'i').replace(']', 'i')),
ColumnFamilyDescriptorBuilder.DEFAULT_MIN_VERSIONS, 3, HConstants.FOREVER,
ColumnFamilyDescriptorBuilder.DEFAULT_KEEP_DELETED);
@Before
public void setUp() throws IOException {
@BeforeEach
public void setUp() throws Throwable {
Comment on lines 92 to 98
ChunkCreator.initialize(MemStoreLAB.CHUNK_SIZE_DEFAULT, false, 0, 0, 0, null,
MemStoreLAB.INDEX_CHUNK_SIZE_PERCENTAGE_DEFAULT);
wal = HBaseTestingUtil.createWal(UTIL.getConfiguration(),
new Path(UTIL.getDataTestDir(), tableName.getNameAsString()), null);
region = HRegion.createHRegion(info, UTIL.getDataTestDir(), UTIL.getConfiguration(), desc, wal);
region = UTIL.createLocalHRegion(info, desc);
}
Comment on lines 44 to 49
@Test
public void testMetricsTableLatencies() {
TableName tn1 = TableName.valueOf("table1");
TableName tn2 = TableName.valueOf("table2");
MetricsTableRequests requests1 = new MetricsTableRequests(tn1, new Configuration());
MetricsTableRequests requests2 = new MetricsTableRequests(tn2, new Configuration());
@liuxiaocs7 liuxiaocs7 marked this pull request as draft May 4, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants