<i18n dev> RFR: 8354344: Test behavior after cut-over for future ISO 4217 currency [v3]
Naoto Sato
naoto at openjdk.org
Thu Apr 17 22:11:42 UTC 2025
On Thu, 17 Apr 2025 21:35:08 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Please review this PR which improves the _ValidateISO4217_ Currency test by adding testing of future currencies after the transition date.
>>
>> This is done by creating a patched version of Currency that replaces `System.currentTimeMillis()` calls with a mocked value equivalent to `Long.MAX_VALUE`. A module patch is then applied to supply the new Currency class files.
>>
>> The mocked time behavior is tested by using the `currency.properties` override in a separate invocation.
>
> Justin Lu has updated the pull request incrementally with one additional commit since the last revision:
>
> simple/special case in check invocation
Good to see the future currency testing.
test/jdk/java/util/Currency/ValidateISO4217.java line 157:
> 155: // "check" invocation only runs the main method (and not any tests) to determine if the
> 156: // future time checking is correct
> 157: public static void main(String[] args) {
It would probably helpful to check if the patched Currency class does exist or not. Same for the `MOCKED.TIME=true` case.
test/jdk/java/util/Currency/ValidateISO4217.java line 203:
> 201: CodeTransform codeTransform = (codeBuilder, e) -> {
> 202: switch (e) {
> 203: case InvokeInstruction i when i.name().stringValue().equals("currentTimeMillis") ->
`equalsString()` may be used. Regardless, is there a way to tell this call is indeed `System.currentTimeMillis()`? Might do that check in case a method on Currency with the same name is introduced (not likely though).
-------------
PR Review: https://git.openjdk.org/jdk/pull/24701#pullrequestreview-2777025817
PR Review Comment: https://git.openjdk.org/jdk/pull/24701#discussion_r2049702515
PR Review Comment: https://git.openjdk.org/jdk/pull/24701#discussion_r2049704312
More information about the i18n-dev
mailing list