<i18n dev> RFR: JDK-8316696: Remove the testing base classes: IntlTest and CollatorTest [v4]

Naoto Sato naoto at openjdk.org
Fri Sep 29 22:09:54 UTC 2023


On Fri, 29 Sep 2023 21:22:01 GMT, Justin Lu <jlu at openjdk.org> wrote:

>> Please review this PR which removes the i18n related testing base classes `IntlTest` and `CollatorTest` and converts all the tests that use them,
>> 
>> IntlTest and CollatorTest are testing classes which are extended by tests in `text/`, `util/Locale`, `util/TimeZone`, and `util/Calendar`. The abstract testing classes are quite dated and have caused issues such as: variation between OS, hiding stack trace, and causing tests to spuriously pass.
>> 
>> This change mainly automates a low level conversion of all the tests (75) using the frameworks; all tests were converted to use JUnit instead. (With the exception of `DateFormatRoundTripTest` due to the nature of the test).
>> 
>> The main changes can be viewed in the following commits
>> 
>> scripted changes - [c0ece01 ](https://github.com/openjdk/jdk/commit/c0ece01e91479a020d5c6dce937dc827472b763b)
>> - Converts the IntlTest methods logln, log, err, and errln
>> - Adds the JUnit Test annotation to tests that should be ran
>> - Adjusts the Jtreg tags accordingly
>> - Remove the main method
>> - Insert initAll() methods for tests that previously adjusted the JVM default Locale/TimeZone in the main method
>> 
>> manual changes - [9a54910](https://github.com/openjdk/jdk/commit/9a5491065a94a4dc7a05194f3b8330efba8077b7)
>> - Some tests that had extensive logic in the main method or did not follow the general IntlTest format had to be manually adjusted
>> - Also clarified some tests that had optional argument setup in the main method (now removed)
>> 
>> removal of IntlTest and CollatorTest - [8ee9f9c](https://github.com/openjdk/jdk/commit/8ee9f9c79f79210ee6244186970d87a1cac05556) [f90266f](https://github.com/openjdk/jdk/pull/15954/commits/f90266f4f019c031c5f985dd658f62a02cc8b422) [3c67679](https://github.com/openjdk/jdk/pull/15954/commits/3c676794dd0c703db066a346c36e213d113d9acc)
>> - Removes IntlTest in both the testlib and under TimeZone/
>> - Replaces CollatorTest with CollatorTestUtils
>> 
>> Tiers 1-3 clean
>
> Justin Lu has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits:
> 
>  - merge master and resolve conflicts
>  - implement feedback
>  - cleanup util classes in text/testlib
>  - CollatorUtils -> CollatorTestUtils
>  - remove IntlTest and CollatorTest. introduce CollatorUtils
>  - manual changes
>  - scripted changes

test/jdk/java/util/Locale/LegacyCodesClassInvariant.java line 94:

> 92:                     fail("Locale didn't maintain invariants for: "+lang);
> 93:                     fail("         got: "+loc);
> 94:                     fail("    excpeted: "+expected);

This will only log the message in the first `fail()` invocation. This may be auto-converted by the script, so you might want to check other places.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15954#discussion_r1341824281


More information about the i18n-dev mailing list