Skip to content

HBASE-30123 Upgrade hbase-server to use junit5 Part13#8153

Open
Apache9 wants to merge 1 commit intoapache:masterfrom
Apache9:HBASE-30123
Open

HBASE-30123 Upgrade hbase-server to use junit5 Part13#8153
Apache9 wants to merge 1 commit intoapache:masterfrom
Apache9:HBASE-30123

Conversation

@Apache9
Copy link
Copy Markdown
Contributor

@Apache9 Apache9 commented Apr 27, 2026

No description provided.

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 large set of hbase-server (and one hbase-common) tests from JUnit4 to JUnit 5, including parameterized-test conversions using HBase’s @HBaseParameterizedTestTemplate, Tag-based classification, and JUnit5-friendly assertion/extension patterns.

Changes:

  • Convert many tests from JUnit4 (@RunWith, @Category, Rules/ClassRules, Assert) to JUnit 5 (@Tag, @BeforeEach/@AfterEach, Assertions, TestInfo, @RegisterExtension).
  • Replace JUnit4 parameterized tests with @HBaseParameterizedTestTemplate + @TestTemplate and Stream<Arguments> providers.
  • Update HBase’s JUnit5 parameter resolver to allow null for non-primitive parameters; add .opencode to .gitignore.

Reviewed changes

Copilot reviewed 70 out of 71 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/io/hfile/bucket/TestVerifyBucketCacheFile.java Convert parameterized BucketCache file verification tests to JUnit5 test templates.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestRecoveryPersistentBucketCache.java Migrate persistence recovery test to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestRAMCache.java Migrate RAMCache test to JUnit5 assertions/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestPrefetchWithBucketCache.java Replace JUnit4 rules with TestInfo; migrate lifecycle annotations to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestPrefetchPersistence.java Convert parameterized prefetch persistence test to JUnit5 template + Stream<Arguments>.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestFileIOEngine.java Migrate FileIOEngine tests to JUnit5 lifecycle and assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestExclusiveMemoryMmapEngine.java Migrate mmap IO engine test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestByteBufferIOEngine.java Migrate ByteBuffer IO engine test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestBucketWriterThread.java Migrate writer thread tests to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCacheRefCnt.java Migrate ref-count tests to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCachePersister.java Migrate persister test to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCacheEmptyPersistence.java Migrate empty/truncated persistence tests to JUnit5 assertion signatures.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestTinyLfuBlockCache.java Migrate TinyLfu cache test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestSeekTo.java Convert parameterized seek tests to JUnit5 template; replace stdout with slf4j logging.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestSeekBeforeWithInlineBlocks.java Migrate inline-block seek tests to JUnit5 assertion ordering.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestScannerSelectionUsingTTL.java Convert TTL scanner selection parameterization to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestScannerSelectionUsingKeyRange.java Convert key-range scanner selection parameterization to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestScannerFromBucketCache.java Replace JUnit4 TestName Rule with TestInfo; migrate to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestRowIndexV1RoundTrip.java Migrate RowIndexV1 round-trip test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestRowIndexV1DataEncoder.java Migrate encoder test to JUnit5 assertions/lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestReseekTo.java Migrate reseek test to JUnit5 assertion signature.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestPrefetchRSClose.java Migrate mini-cluster prefetch-close test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestPrefetch.java Switch to OpenTelemetryExtension (JUnit5) and migrate assertions/lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruCachedBlock.java Migrate LruCachedBlock test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruBlockCache.java Migrate LruBlockCache test to JUnit5 assertions/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLruAdaptiveBlockCache.java Migrate adaptive cache test to JUnit5 assertions/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestLazyDataBlockDecompression.java Convert parameterized lazy decompression test to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileWriterV3WithDataEncoders.java Convert parameterized writer tests to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileWriterV3.java Convert boolean-parameterized writer test to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileSeek.java Migrate lifecycle methods to JUnit5 and replace stdout with logging.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileReaderImpl.java Migrate reader-impl test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFilePrettyPrinter.java Migrate pretty-printer test to JUnit5 and modern assertion signatures.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileInlineToRootChunkConversion.java Migrate inline-to-root conversion test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileEncryption.java Migrate encryption test to JUnit5 lifecycle and assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileDataBlockEncoder.java Convert parameterized test to JUnit5 template; replace stdout/stderr with logging.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlockUnpack.java Replace TestName Rule with TestInfo; migrate to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlockIndex.java Convert parameterized block-index tests to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java Convert JUnit4 parameterization to JUnit5 Stream<Arguments> + test templates.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFile.java Replace JUnit4 rule usage with TestInfo; migrate assertions and logging.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java Convert parameterized caching test to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestFixedFileTrailer.java Convert trailer version parameterization to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCombinedBlockCache.java Migrate combined block cache test to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestChecksum.java Migrate checksum tests to JUnit5 lifecycle and assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCachedBlockQueue.java Migrate cached block queue test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCacheStats.java Migrate cache stats test to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.java Convert large parameter matrix to JUnit5 template + Stream<Arguments>.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java Migrate cache config test to JUnit5 lifecycle.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestBytesReadFromFs.java Remove JUnit4 rules; migrate to JUnit5 lifecycle/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/KeySampler.java Remove debug stdout and update BytesWritable byte-array access.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestSeekToBlockWithEncoders.java Convert boolean parameterization to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestSeekBeforeWithReverseScan.java Migrate reverse scan test to JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoding.java Migrate small encoding test to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.java Convert memstore/tags/offheap parameterization to JUnit5 template.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestChangingEncoding.java Migrate mini-cluster lifecycle annotations to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestBufferedDataBlockEncoder.java Migrate buffered encoder test to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/compress/HFileTestBase.java Update shared compression test base to JUnit5 assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestMetricsIO.java Migrate metrics IO test to JUnit5 tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestImmutableBytesWritable.java Migrate immutable bytes writable tests to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHeapSize.java Migrate heap sizing test to JUnit5 lifecycle/tags.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHalfStoreFileReader.java Migrate half store file reader tests to JUnit5; replace stdout with logging.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHFileLink.java Replace TestName Rule with TestInfo; migrate to JUnit5.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestFileLink.java Replace JUnit4 expected-exception style with assertThrows; migrate tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestFSDataInputStreamWrapper.java Migrate wrapper test to JUnit5 tags/assertions.
hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestByteBufferOutputStream.java Migrate output stream test to JUnit5 tags/assertions.
hbase-common/src/test/java/org/apache/hadoop/hbase/HBaseParameterizedParameterResolver.java Allow null values for non-primitive parameters in JUnit5 parameter resolver.
.gitignore Ignore .opencode files/directories.

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

Comment thread hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestBlockIOUtils.java Outdated
@liuxiaocs7
Copy link
Copy Markdown
Member

liuxiaocs7 commented Apr 28, 2026

Seems TestFromClientSide3WithCoprocessor and TestFromClientSide3 have become unstable in our CI now

@Apache9
Copy link
Copy Markdown
Contributor Author

Apache9 commented Apr 29, 2026

Seems TestFromClientSide3WithCoprocessor and TestFromClientSide3 have become unstable in our CI now

They take too much time to finish... I downloaded the zip file and checked the log, there is no failure but TestFromClientSide3 take 760s to finish and our timeout limit is 780s...

Let me split them...

@Apache9 Apache9 requested a review from liuxiaocs7 April 29, 2026 11:07
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.

3 participants