HBASE-30123 Upgrade hbase-server to use junit5 Part13#8153
HBASE-30123 Upgrade hbase-server to use junit5 Part13#8153Apache9 wants to merge 1 commit intoapache:masterfrom
Conversation
There was a problem hiding this comment.
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+@TestTemplateandStream<Arguments>providers. - Update HBase’s JUnit5 parameter resolver to allow null for non-primitive parameters; add
.opencodeto.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.
|
Seems |
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... |
|
#8163 has been merged for fixing the TestFromClientSide3 problem. All checks here are green. Ping @liuxiaocs7 . I used opencode to assist the upgrading so I added .opencode to gitignore. AI has helped doing most of the boiler plate changes, like replacing Category with Tag, etc. TestPrefetch was upgraded manually by me since it contains special opentelemetry rule. TestHFileBlockHeaderCorruption |
|
And I also confirmed that, before and after the PR, there are both 705 tests. |
No description provided.