On Tue, 27 Jan 2026 17:41:35 GMT, Justin Lu <[email protected]> wrote:

>> Please review this PR which converts the JDBC TestNG tests to use JUnit.
>> 
>> This is mainly done using the automated tool in 
>> https://github.com/openjdk/jdk/commit/0cec3097aec02e72ccb6ebbf0b2b046220578d1b,
>>  with some manual follow up commits. The testng folder is migrated to junit 
>> with the TEST.properties updated as well. Most changes are annotation 
>> updates and switching from testNG imports to JUnit. I decided to simplify 
>> cases of `BaseTest.trueFalse()` to use booleans in a `ValueSource` directly 
>> in 
>> https://github.com/openjdk/jdk/commit/757e7966666d39748db2912b32ccf8b1df18bd62.
>> 
>> Framework test stats before:
>> 680 = 680 TestNG + 0 JUnit
>> 
>> Framework test stats after:
>> 680 = 0 TestNG + 680 JUnit
>
> Justin Lu has updated the pull request incrementally with 11 additional 
> commits since the last revision:
> 
>  - clean up some of the statement lambdas
>  - use static imports for assertions
>  - TestInstance cleanup -> Base test remains PER_CLASS (as needed), child 
> classes remove redundant annotations
>  - Convert testNG Object[][] style data providers to Stream
>  - Convert test/jdk/java/sql/junit/test/sql/ param tests to ensure original 
> semantics
>  - Resolve errors stemming from JUnit auto-closeable resolution
>  - Resolve undetected BaseTest data providers
>  - Resolve no automated replacement for assertEqualsNoOrder
>  - Apply automated conversion to javax/sql and update testng to junit naming 
> for folder & properties
>  - Refactor JavatimeTest.java to use JUnit and migrate under junit folder
>  - ... and 1 more: https://git.openjdk.org/jdk/compare/8ba8213f...06098254

The latest batch of commits updates the _javax/sql_ testNG files to use JUnit 
as well. `BaseTest` which the majority of tests rely on remain 
`Lifecycle.PER_CLASS` (as needed) but the non `BaseTest` extending classes were 
able to migrate to the default life cycle. Note that the parameterized tests 
were updated to have their `autoCloseArgument` attribute set to false, since 
there were failures when left on the default value of true. For example, 
`close()` is a no-op for many of the `Stub` classes which get tested.

> AutoCloseable arguments
> 
> Arguments that implement java.lang.AutoCloseable (or java.io.Closeable which 
> extends java.lang.AutoCloseable) will be 
> automatically closed after the parameterized class or test invocation. To 
> prevent this from happening, set the autoCloseArguments attribute in 
> @ParameterizedTest to false.


_JavaTimeTest_ was also updated to use JUnit and moved under the folder 
accordingly. Do we want the _jdk/test/jdk/javax/sql/rowset_ tests to also be 
migrated to use JUnit as well? Also, is it appropriate to place 
_jdk/test/jdk/java/sql/driverModuleTests/DriverManagerModuleTests.java_ under 
_jdk/test/jdk/java/sql/junit/test/sql/othervm_ since it is now a JUnit test?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/29354#issuecomment-3806592650

Reply via email to