RFR: 8279283 - BufferedInputStream should override transferTo [v9]
Markus KARG
duke at openjdk.org
Thu Sep 8 08:26:44 UTC 2022
On Thu, 8 Sep 2022 06:39:58 GMT, Markus KARG <duke at openjdk.org> wrote:
>>> Given that the implementation in this PR now calls the wrapped `InputStream`'s `transferTo` method, should we also include a test where the wrapped `InputStream` is a `FileInputStream` and the target `OutputStream` is a `FileOutputStream`, so that it exercises the `FileChannel#transferTo` code path and verifies the correct data is transferred?
>>
>> Right, the implementation change means that the transferTo implementation of the wrapped input stream is used, or the base InputStream.transferTo is used. We should expect there is good test coverage of these implementations already but checking into that might find opportunities to expand those tests (not this PR of course).
>>
>> For the new test to exercise the BIS.transferTo then I think it will need to test with a mark set, test when there are buffered bytes (read before transferTo), or when BIS has been extended.
>
> Agreed that testing the non-empty-buffer (read-before-transferTo) and the mark-set cases (mark-before-transferTo), but still I do not see any need to take particularly `FileInputStream` into the boat; files only make the test run slower.
I have just added testing `transferTo` with non-empty buffer and mark set as part of the already existing *randomized* test steps. I think that should be sufficient to detect problems if they really would exist, so there should not be a real need to run *explicit and separate* test cases for the combinations of "buffered with mark" / "buffered without mark" / "unbuffered with mark" / "unbuffered without mark" as that would not provide any improved coverage or detection rate IMHO.
-------------
PR: https://git.openjdk.org/jdk/pull/6935
More information about the core-libs-dev
mailing list