On Fri, 9 Sep 2022 06:45:04 GMT, Markus KARG <[email protected]> wrote:
>> test/jdk/java/io/BufferedInputStream/TransferTo.java line 170:
>>
>>> 168: if (mark) {
>>> 169: in.mark(1);
>>> 170: }
>>
>> This just tests transferTo with a mark set, it doesn't appear to check that
>> mark is respected. To test mark/reset then I think it will need to call mark
>> with a largish readLimit, transferTo to drain the input to EOF, reset, and
>> then read or transferTo again to check that the bytes from the mark are
>> replayed.
>
> I did not do that so far, as we agreed to check the *new* code path, which is
> only executed when noting was marked (so reset plays no role). Certainly I
> will be happy to add another test for the use case you describe (i. e. the
> *old* code path), even if we all know -thanks to our knowledge of the
> existence of the two code paths-, that it will surely pass even with my PR in
> place, unless there is a bug in the *old* code path... ;-)
Unless there's a bug and the new code path is triggered when there's a mark ;-)
. Maybe we can convince ourselves that this can't happen now (by reading the
code), but if someone modifies this code 2 years from now and introduces a bug
that changes that it would be good to have a test to catch it.
-------------
PR: https://git.openjdk.org/jdk/pull/6935