FileSystem and FileContract aren't tested rigorously enough -while HDFS gets tested downstream, other filesystems, such as blobstore bindings, don't.
The only tests that are common are those of FileSystemContractTestBase, which
HADOOP-9258 shows is incomplete.
- writing more tests which clarify expected behavior
- testing operations in the interface being in their own JUnit4 test classes, instead of one big test suite.
- Having each FS declare via a properties file what behaviors they offer, such as atomic-rename, atomic-delete, umask, immediate-consistency -test methods can downgrade to skipped test cases if a feature is missing.
|Write FSWrapper class to wrap FileSystem and FileContext for better test coverage||Resolved|
|2.||Define Semantics of FileSystem and FileContext more rigorously||In Progress||
|Add stricter tests to FileSystemContractTestBase||Resolved|
|4.||Define behaviour of Seekable.seek(), write tests, fix all hadoop implementations for compliance||Open|
|5.||Add a Blobstore interface to add to blobstore FileSystems||Open||Unassigned|
|6.||FileSystem open() API is not clear if FileNotFoundException is throw when the path does not exist||Reopened||Unassigned|
|7.||Filesystems to throw FileAlreadyExistsException in createFile(path, overwrite=false) when the file exists||Patch Available||Unassigned|
|8.||Write contract tests for S3Native; fix places where it breaks||Open||Unassigned|
|9.||Write contract tests for FTP filesystem, fix places where it breaks||Patch Available||Unassigned|
|10.||define FS permissions model with tests||Open||Unassigned|