On Sat, 27 Jun 2026 13:28:25 GMT, Jaikiran Pai <[email protected]> wrote:

>> test/jdk/java/io/Serializable/valueObjects/ValueSerializationTest.java line 
>> 161:
>> 
>>> 159:                 Arguments.of(Arguments.of(
>>> 160:                         new SerializablePoint(3, 7),
>>> 161:                         new SerializablePoint(4, 8))),
>> 
>> This test used to be testng test which was later converted to junit. It 
>> looks like that conversion might have introduced a bug in this parameter 
>> generation. Previously, when this test was testng it used to be:
>> 
>> 
>> @DataProvider(name = "ImplementSerializable")
>> public Object[][] implementSerializable() {
>>     return new Object[][]{
>>             new Object[]{new SerializablePoint(11, 101)},
>> 
>>             new Object[]{new SerializablePoint[]{
>>                     new SerializablePoint(1, 5),
>>                     new SerializablePoint(2, 6)}},
>> 
>>             new Object[]{new Object[]{
>>                     new SerializablePoint(3, 7),
>>                     new SerializablePoint(4, 8)}},
>> 
>>             new Object[]{new SerializableFoo(45)},
>> 
>>             new Object[]{new SerializableFoo[]{new SerializableFoo(46)}},
>> 
>>             new Object[]{new ExternalizableFoo("hello")},
>> 
>>             new Object[]{new ExternalizableFoo[]{new 
>> ExternalizableFoo("there")}},
>>     };
>> }
>> 
>> The conversion has led to:
>> 
>> 
>> Arguments.of(Arguments.of(
>>                         new SerializablePoint(3, 7),
>>                         new SerializablePoint(4, 8))),
>> 
>> which is wrong. As a result, right now, instead of running the 
>> `implementSerializable(Object obj)` test method 7 times with different 
>> paramters, that test method only gets run twice: 
>> 
>> 
>> [01:38:50.773] STARTED    ValueSerializationTest::implementSerializable '[1] 
>> [SerializablePoint x=11 y=101]'
>> [01:38:50.799] SUCCESSFUL ValueSerializationTest::implementSerializable '[1] 
>> [SerializablePoint x=11 y=101]' [25ms]
>> [01:38:50.802] STARTED    ValueSerializationTest::implementSerializable '[2] 
>> [[SerializablePoint x=1 y=5], [SerializablePoint x=2 y=6]]'
>> [01:38:50.808] SUCCESSFUL ValueSerializationTest::implementSerializable '[2] 
>> [[SerializablePoint x=1 y=5], [SerializablePoint x=2 y=6]]' [6ms]
>> 
>> 
>> The rest parameters seems to be ignored due to the 
>> `Arguments.of(Arguments.of(...))` bug. A similar issue exists in the 
>> parameters provider for another test method in this class. I'll file an 
>> issue and address this shortly.
>
> Filed https://bugs.openjdk.org/browse/JDK-8387374

Hello Christian @sormuras, would you happen to know if there are ways to catch 
these issues with parameterized tests by failing the test?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31123#discussion_r3486093858

Reply via email to