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