RFR: 8365776: Convert JShell tests to use JUnit instead of TestNG
Francesco Andreuzzi
duke at openjdk.org
Fri Sep 5 10:03:34 UTC 2025
On Tue, 19 Aug 2025 10:26:14 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:
> This is a conversion of JShell tests from TestNG to JUnit 5.
>
> To make the changes more transparent, there are 4 commit in this PR:
> - https://github.com/openjdk/jdk/pull/26841/commits/c6b5d8441ad532551e626b3542431aa3f479ffc0: this one changes a name of a custom interface representing test cases, so that subsequent commits can use a simple name for `org.junit.jupiter.api.Test` (otherwise `Test` would resolve to the custom interface is subclasses of `UITesting`, and FQN would need to be used to refer to the annotation).
> - https://github.com/openjdk/jdk/pull/26841/commits/2afee7d258f646f822d0b1bc3465d5595058e3df: the bulk of changes, done automatically by:
> The bulk of the changes is done automatically, using this tool/script:
> https://github.com/lahodaj/netbeans/tree/19515c3e2dbc07d977ca227d933197f856121ae5/java/java.openjdk.project/junit-convert
> - https://github.com/openjdk/jdk/pull/26841/commits/8ca03af1b4d06e479cdfe7cc66186222feeaaa76: manual adjustments for things the tool does not handle (at least currently):
> - one indent problem
> - two uses of injected `java.lang.reflect.Method`, which needs to be replaced with `TestInfo`
> - a different way to skip a test (normally, the tool detects and converts uses of `SkipException`, but that exception was not used on this place).
> - https://github.com/openjdk/jdk/pull/26841/commits/639da0171a593031dae6a73830bb1665b7097e73: scripted update to copyright headers, done using:
>
> bash ./make/scripts/update_copyright_year.sh -b `git merge-base master jshell-upgrade-testng-to-junit`
>
>
> As part of validation of this change, this script:
> [CompareTestResults.java](https://github.com/user-attachments/files/22169483/CompareTestResults.java)
> was used to compare the results in `junit.txt` and `testng.txt` in test results before and after the change, and it didn't find a difference in test counts.
test/langtools/jdk/jshell/ComputeFQNsTest.java line 80:
> 78: }
> 79:
> 80: @Test(enabled = false) //TODO 8161165
Should the `// TODO` comment stay?
test/langtools/jdk/jshell/EditorTestBase.java line 266:
> 264: }
> 265:
> 266: @Test(enabled = false) // TODO JDK-8191875
Should the `// TODO` comment stay?
test/langtools/jdk/jshell/ErrorTranslationTest.java line 76:
> 74: }
> 75:
> 76: @Test(enabled = false) // TODO 8132147
Should the `// TODO` comment stay?
test/langtools/jdk/jshell/ExceptionsTest.java line 295:
> 293: }
> 294:
> 295: @Test(enabled = false) // TODO 8129427
Should the `// TODO` comment stay?
test/langtools/jdk/jshell/ExternalEditorTest.java line 253:
> 251: }
> 252:
> 253: @Test(enabled = false) // TODO 8159229
Should the `// TODO` comment stay?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26841#discussion_r2284885174
PR Review Comment: https://git.openjdk.org/jdk/pull/26841#discussion_r2284888622
PR Review Comment: https://git.openjdk.org/jdk/pull/26841#discussion_r2284889638
PR Review Comment: https://git.openjdk.org/jdk/pull/26841#discussion_r2284890329
PR Review Comment: https://git.openjdk.org/jdk/pull/26841#discussion_r2284891071
More information about the compiler-dev
mailing list