[
https://issues.apache.org/jira/browse/HADOOP-19400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17924985#comment-17924985
]
ASF GitHub Bot commented on HADOOP-19400:
-----------------------------------------
cnauroth opened a new pull request, #7367:
URL: https://github.com/apache/hadoop/pull/7367
### Description of PR
Enhance the FS specification and contract tests to cover expected semantics
of the InputStream single-byte and multi-byte read methods:
* Multi-byte read should validate the arguments passed to it, according to
the patterns established in the JDK base `InputStream` class and HDFS
`DFSInputStream`.
* You should get the same bytes whether going through single-byte or
multi-byte read.
* It is legal to mix calls to single-byte and multi-byte read, and this
should also yield the same bytes.
### How was this patch tested?
I ran all subclasses of `AbstractContractOpenTest` for local, HDFS and S3A
(connecting to GCS's S3-compatible XML API).
```
mvn -o \
-pl
hadoop-common-project/hadoop-common,hadoop-hdfs-project/hadoop-hdfs,hadoop-hdfs-project/hadoop-hdfs-rbf,hadoop-tools/hadoop-aws
test \
-Dtest=TestFTPContractOpen,TestHDFSContractOpen,TestRouterHDFSContractOpenSecure,TestRouterWebHDFSContractOpen,TestRouterHDFSContractOpen,ITestS3AContractOpen,TestLocalFSContractOpen,TestRawlocalContractOpen
```
I generated the site locally and confirmed the new specification content.
```
mvn -o site site:stage -Preleasedocs,docs -DstagingDirectory=/tmp/hadoop-site
```
### For code changes:
- [X] Does the title or this PR starts with the corresponding JIRA issue id
(e.g. 'HADOOP-17799. Your PR title ...')?
- [X] Object storage: have the integration tests been executed and the
endpoint declared according to the connector-specific documentation?
- [ ] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
- [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`,
`NOTICE-binary` files?
> Expand specification and contract test coverage for InputStream reads.
> ----------------------------------------------------------------------
>
> Key: HADOOP-19400
> URL: https://issues.apache.org/jira/browse/HADOOP-19400
> Project: Hadoop Common
> Issue Type: Improvement
> Components: documentation, fs, test
> Reporter: Chris Nauroth
> Assignee: Chris Nauroth
> Priority: Major
>
> This issue is a spin-off from HADOOP-19389, specifically [this code review
> discussion|https://github.com/apache/hadoop/pull/7291#discussion_r1920495312].
> We can enhance the FS specification and contract tests to cover expected
> semantics of the {{InputStream}} single-byte and multi-byte read methods:
> * Multi-byte read should validate the arguments passed to it, according to
> the pattern established in the JDK base {{InputStream}} class.
> * You should get the same bytes whether going through single-byte or
> multi-byte read.
> * It is legal to mix calls to single-byte and multi-byte read, and this
> should also yield the same bytes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]